mogilefs-client 3.1.1 → 3.2.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +3752 -0
- data/GIT-VERSION-GEN +1 -1
- data/Manifest.txt +67 -0
- data/NEWS +308 -0
- data/README +1 -0
- data/Rakefile +13 -6
- data/lib/mogilefs/backend.rb +8 -2
- data/lib/mogilefs/mogilefs.rb +31 -1
- data/lib/mogilefs/version.rb +1 -1
- data/test/test_fresh.rb +21 -0
- data/test/test_mogilefs_integration.rb +21 -0
- metadata +153 -74
data/ChangeLog
ADDED
@@ -0,0 +1,3752 @@
|
|
1
|
+
ChangeLog from http://bogomips.org/mogilefs-client.git (v1.2.1..v3.2.0-rc1)
|
2
|
+
|
3
|
+
commit 920408e2c94fbe84331aab5ab4b0c402024817aa
|
4
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
5
|
+
Date: Fri Jun 15 01:01:06 2012 +0000
|
6
|
+
|
7
|
+
Ruby mogilefs-client 3.2.0-rc1
|
8
|
+
|
9
|
+
* "list_keys" and "exist?" client commands raise errors properly
|
10
|
+
on failure.
|
11
|
+
|
12
|
+
* backend connections no longer terminate on ERR responses, only
|
13
|
+
on socket/connection errors.
|
14
|
+
|
15
|
+
* support the "updateclass" client command. This is for updating
|
16
|
+
the class of a given key and not to be confused with the
|
17
|
+
"update_class" admin command.
|
18
|
+
|
19
|
+
* "new_file" checksum usage is now documented since MogileFS 2.60
|
20
|
+
includes official support for checksums
|
21
|
+
|
22
|
+
commit 42f9969979917cae79fd98844aec6b03cf2ab880
|
23
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
24
|
+
Date: Tue Jun 12 23:08:29 2012 +0000
|
25
|
+
|
26
|
+
backend: reuse connections on error responses
|
27
|
+
|
28
|
+
The server sending us a properly-formed "ERR" response is a big
|
29
|
+
difference than an actual socket or connection error.
|
30
|
+
|
31
|
+
commit dc0fa66e56a271f4de431ecfc909686d27d73f78
|
32
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
33
|
+
Date: Wed Jun 6 02:10:52 2012 +0000
|
34
|
+
|
35
|
+
exist?(dkey) raises on real errors
|
36
|
+
|
37
|
+
Specifying an invalid domain will raise
|
38
|
+
MogileFS::Backend::UnregDomain error instead of merely
|
39
|
+
returning `false'. Only checks for keys in the correct
|
40
|
+
domain (but non-existent keys) return false.
|
41
|
+
|
42
|
+
commit 112df6360d87356e03a21e8cc4ae24b49eede95f
|
43
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
44
|
+
Date: Tue Jun 5 23:46:09 2012 +0000
|
45
|
+
|
46
|
+
list_keys raises on errors properly
|
47
|
+
|
48
|
+
list_keys needs to raise UnregDomainError on invalid domains.
|
49
|
+
This regression was introduced in
|
50
|
+
commit 0b933fc83b8b519c8e587caa6606dd372dda18af
|
51
|
+
|
52
|
+
commit 8644022fb9046556d37a51735cad433f382949c1
|
53
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
54
|
+
Date: Thu Apr 19 01:21:10 2012 +0000
|
55
|
+
|
56
|
+
Rakefile: remove vim-specific modeline
|
57
|
+
|
58
|
+
Avoid taking sides or showing preference for particular text
|
59
|
+
editors. Text editors are _very_ personal preferences, and
|
60
|
+
explicitly supporting/acknowledging one would set precedence for
|
61
|
+
explicitly supporting/acknowledging others. This would lead
|
62
|
+
down the slippery slope of having modelines for every single
|
63
|
+
text editor in every single file we have.
|
64
|
+
|
65
|
+
For this same reason, we do not (and never will) expose
|
66
|
+
editor-specific suffixes in .gitignore.
|
67
|
+
|
68
|
+
Full disclosure: I'm a vim user myself
|
69
|
+
|
70
|
+
commit 5b9c47e479d5d0361b30c33d7e7aa8ba90755f01
|
71
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
72
|
+
Date: Fri May 4 15:20:31 2012 -0700
|
73
|
+
|
74
|
+
new_file: documentation for :content_md5 usage
|
75
|
+
|
76
|
+
Now that checksum support is officially a part of MogileFS, we
|
77
|
+
can document (and thus encourage) it without risking
|
78
|
+
compatibility issues.
|
79
|
+
|
80
|
+
commit d18a8b31a573feaec3da7ce292440eee628f464f
|
81
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
82
|
+
Date: Thu Mar 22 21:44:17 2012 +0000
|
83
|
+
|
84
|
+
client: add support for "updateclass" command
|
85
|
+
|
86
|
+
This changes the class associated with +key+.
|
87
|
+
This is _not_ the same as the "update_class" admin command
|
88
|
+
which actually modifies the class itself.
|
89
|
+
|
90
|
+
commit d5718e3ebeae61409bd5e260b8355ea68685ae84
|
91
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
92
|
+
Date: Tue Feb 28 22:43:17 2012 +0000
|
93
|
+
|
94
|
+
Rakefile: release generated NEWS/ChangeLog files
|
95
|
+
|
96
|
+
These files should be included in release gem/tarballs, users
|
97
|
+
should not require web acccess to access documentation.
|
98
|
+
|
99
|
+
commit 56f13ad91c882d391b374917544990175c1ed7b0
|
100
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
101
|
+
Date: Tue Feb 28 22:38:02 2012 +0000
|
102
|
+
|
103
|
+
README: add download link
|
104
|
+
|
105
|
+
Not everybody uses RubyGems.
|
106
|
+
|
107
|
+
commit cea1724c77e4af0f2db2e694114aff9f51ff91f7
|
108
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
109
|
+
Date: Tue Feb 28 22:10:15 2012 +0000
|
110
|
+
|
111
|
+
Ruby mogilefs-client 3.1.1
|
112
|
+
|
113
|
+
This releases fixes problems short reads when slurping files
|
114
|
+
into memory. Thanks to Matthew Draper for this fix.
|
115
|
+
There are also minor documentation updates.
|
116
|
+
|
117
|
+
commit 7d7d30329e806d38350cd8eba161d3157e5bbca4
|
118
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
119
|
+
Date: Tue Feb 28 14:04:21 2012 -0800
|
120
|
+
|
121
|
+
doc: update to not refer to MogileFS 2.55 specifically
|
122
|
+
|
123
|
+
It's more future-proof, this way.
|
124
|
+
|
125
|
+
commit 6faffa9ba774bad500ca48cc52449dae0639227b
|
126
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
127
|
+
Date: Tue Feb 28 14:02:54 2012 -0800
|
128
|
+
|
129
|
+
LICENSE: update copyright year + range
|
130
|
+
|
131
|
+
Not that it really matters given the MIT license...
|
132
|
+
|
133
|
+
commit d758083954ee480bde5b079cfd3f7b4fcf0f9bf7
|
134
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
135
|
+
Date: Tue Feb 28 14:01:01 2012 -0800
|
136
|
+
|
137
|
+
doc: fixup mailto: links
|
138
|
+
|
139
|
+
It's better if email addresses are visible and not hidden behind
|
140
|
+
links for folks that don't integrate email clients into web
|
141
|
+
browsers.
|
142
|
+
|
143
|
+
commit 8a3f48341248b919b5c4816bf4f7079eb35d6882
|
144
|
+
Author: Matthew Draper <matthew@trebex.net>
|
145
|
+
Date: Tue Feb 28 23:39:09 2012 +1030
|
146
|
+
|
147
|
+
Don't stop reading too early.
|
148
|
+
|
149
|
+
Leave size unchanged, so it's available for easy comparison with
|
150
|
+
buf.bytesize.
|
151
|
+
|
152
|
+
[ew: added test case]
|
153
|
+
Acked-by: Eric Wong <normalperson@yhbt.net>
|
154
|
+
|
155
|
+
commit 55365e01dc0b2b5db01441004f4c6921d1fd04d6
|
156
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
157
|
+
Date: Fri Feb 17 12:17:50 2012 -0800
|
158
|
+
|
159
|
+
fix documentation of :noverify for get_paths
|
160
|
+
|
161
|
+
:noverify always defaults to _true_ (meaning verification is
|
162
|
+
_off_ by default). This double negative is unfortunately
|
163
|
+
a confusing part of the existing API and MogileFS protocol.
|
164
|
+
|
165
|
+
commit 83305f7e52f95d9aea63de2afa0cf8f2616c2ced
|
166
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
167
|
+
Date: Thu Dec 15 05:17:23 2011 +0000
|
168
|
+
|
169
|
+
README: speling ficks
|
170
|
+
|
171
|
+
commit 6c05d25e740a5150e0c51b4a8d741b1be45ff78c
|
172
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
173
|
+
Date: Thu Dec 15 04:08:25 2011 +0000
|
174
|
+
|
175
|
+
Ruby mogilefs-client 3.1.0
|
176
|
+
|
177
|
+
* improved API support for uploading large files
|
178
|
+
While we've always supported uploading large files, the
|
179
|
+
(still-supported) existing APIs were somewhat awkward or
|
180
|
+
required the file to exist on the file system. See
|
181
|
+
MogileFS::NewFile for details and examples.
|
182
|
+
|
183
|
+
* more informative exception messages for timed-out requests
|
184
|
+
|
185
|
+
* :fail_timeout parameter, the timeout for retrying a failed
|
186
|
+
tracker connection. This defaults to 5 seconds (same as
|
187
|
+
previous versions where this was hard-coded.
|
188
|
+
|
189
|
+
* :new_file_max_time parameter
|
190
|
+
Controls the maximum of time spent creating and uploading
|
191
|
+
a new file in MogileFS. This defaults to 1 hour (which
|
192
|
+
matching the expiry time of a row in the MogileFS internal
|
193
|
+
tempfile table).
|
194
|
+
|
195
|
+
* store_file works on unlinked File/Tempfile objects
|
196
|
+
|
197
|
+
* each_fid method in MogileFS::Admin fixed
|
198
|
+
|
199
|
+
* stale_fid_checker example script added
|
200
|
+
|
201
|
+
* mogstored_rack example split into a standalone RubyGem:
|
202
|
+
http://bogomips.org/mogstored_rack/
|
203
|
+
|
204
|
+
* backend error constants are generated on const_missing,
|
205
|
+
instead of when raised, making it easier to rescue exceptions
|
206
|
+
we didn't explicitly enable
|
207
|
+
|
208
|
+
* some internal cleanups and documentation improvements
|
209
|
+
|
210
|
+
commit d199947566d5783ce2b56338d45d262712ff7151
|
211
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
212
|
+
Date: Thu Dec 15 04:03:33 2011 +0000
|
213
|
+
|
214
|
+
docs for various timeouts in MogileFS::MogileFS.new
|
215
|
+
|
216
|
+
We have lots of timeouts :x
|
217
|
+
|
218
|
+
commit 70a529d070920abf0989d3d89d775ea1aa774042
|
219
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
220
|
+
Date: Mon Dec 12 09:22:35 2011 +0000
|
221
|
+
|
222
|
+
backend: rely on auto-generated exceptions in const_missing
|
223
|
+
|
224
|
+
Most of these exceptions are just too rare to be useful,
|
225
|
+
and code that cares for exceptions will rescue them
|
226
|
+
anyways.
|
227
|
+
|
228
|
+
commit c1cf4444b2ca9126e8450ae3224cd406f0e43624
|
229
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
230
|
+
Date: Wed Dec 14 17:37:23 2011 -0800
|
231
|
+
|
232
|
+
add configurable :fail_timeout for backends
|
233
|
+
|
234
|
+
This controls the retry timeout of a failed backend
|
235
|
+
|
236
|
+
commit 0b933fc83b8b519c8e587caa6606dd372dda18af
|
237
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
238
|
+
Date: Mon Dec 12 07:56:00 2011 +0000
|
239
|
+
|
240
|
+
avoid relying on exceptions for list_keys
|
241
|
+
|
242
|
+
This will make debug output quieter.
|
243
|
+
|
244
|
+
commit 594295a29cbc33fc04b7c0b87ecf664f036819a9
|
245
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
246
|
+
Date: Mon Dec 12 07:48:36 2011 +0000
|
247
|
+
|
248
|
+
simplify exist? implementation for avoiding exceptions
|
249
|
+
|
250
|
+
This adds an internal :ruby_no_raise flag to the backend
|
251
|
+
to avoid exceptions.
|
252
|
+
|
253
|
+
commit 8a54653184536b99bf74bcaedb8cf84ea0f4f693
|
254
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
255
|
+
Date: Sun Dec 11 22:25:12 2011 +0000
|
256
|
+
|
257
|
+
net-http-persistent not required for Content-Range uploads
|
258
|
+
|
259
|
+
Performance with Content-Range uploads sucks either way, so it's
|
260
|
+
not noticeably worse off on a LAN /without/ persistent
|
261
|
+
connections.
|
262
|
+
|
263
|
+
commit b1e3b9f570c04100f73f63ceaff6ab07f938476a
|
264
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
265
|
+
Date: Sun Dec 11 22:03:09 2011 +0000
|
266
|
+
|
267
|
+
examples/stale_fid_checker: --help + fail on older versions
|
268
|
+
|
269
|
+
each_fids was too buggy and likely to yield false positives
|
270
|
+
|
271
|
+
commit 81f4cf3eda8f42040149da4ad267adf6adcf3e83
|
272
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
273
|
+
Date: Sun Dec 11 09:13:41 2011 +0000
|
274
|
+
|
275
|
+
History: point users towards NEWS doc
|
276
|
+
|
277
|
+
NEWS is more common in the wider Free Software community
|
278
|
+
|
279
|
+
commit 246bc4139262d4575b3a7b45e7a08bc93ff1a975
|
280
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
281
|
+
Date: Sun Dec 11 09:05:08 2011 +0000
|
282
|
+
|
283
|
+
chunker: small cleanups to whitespace handling
|
284
|
+
|
285
|
+
The client-provided Content-MD5 may have leading/trailing
|
286
|
+
whitespace, so we shall strip that before comparing.
|
287
|
+
|
288
|
+
We also know any base64-encoded MD5 we generate will have only
|
289
|
+
trailing whitespace so we can get away with the (slightly)
|
290
|
+
faster and more-GC-friendly String#rstrip!
|
291
|
+
|
292
|
+
commit 3f342091cec9fcd5f99ba934444f17cd0c77de71
|
293
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
294
|
+
Date: Sun Dec 11 08:47:39 2011 +0000
|
295
|
+
|
296
|
+
add :new_file_max_time parameter
|
297
|
+
|
298
|
+
This defaults to 1 hour (which matches the expiry time of a row
|
299
|
+
in the MogileFS internal tempfile table).
|
300
|
+
|
301
|
+
commit 9d5f3208dab86837106b56f105af8bbb121f438a
|
302
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
303
|
+
Date: Sun Dec 11 08:33:00 2011 +0000
|
304
|
+
|
305
|
+
misc. documentation improvements
|
306
|
+
|
307
|
+
100% RDoc coverage (not that it's an indicator of _good_
|
308
|
+
documentation, but we're getting there)
|
309
|
+
|
310
|
+
commit 56e7c8eecf59b037a778ad1121b2ffd93258482f
|
311
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
312
|
+
Date: Sun Dec 11 08:32:03 2011 +0000
|
313
|
+
|
314
|
+
examples: add stale_fid_checker script
|
315
|
+
|
316
|
+
This logic may go upstream into the tracker Fsck worker itself,
|
317
|
+
but until then, we can try this from the client side.
|
318
|
+
|
319
|
+
commit b69111a6573826d7c4fc3edd4fcc514d0eb425e9
|
320
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
321
|
+
Date: Fri Dec 9 18:22:01 2011 -0800
|
322
|
+
|
323
|
+
finalize and document improved new_file API
|
324
|
+
|
325
|
+
commit 7f153071e40b1242ad0aa46c81ec0e927b9fc890
|
326
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
327
|
+
Date: Fri Dec 9 16:23:48 2011 -0800
|
328
|
+
|
329
|
+
rename "Put" namespace to "NewFile"
|
330
|
+
|
331
|
+
This should make documentation easier
|
332
|
+
|
333
|
+
commit 5326214033b4f26ec426a0313c164f5de0225207
|
334
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
335
|
+
Date: Fri Dec 9 23:50:05 2011 +0000
|
336
|
+
|
337
|
+
tests: speedup tests that require hitting mogstored
|
338
|
+
|
339
|
+
By pre-creating devN dirs, mogstored can create usage files
|
340
|
+
sooner and we won't have to wait 10s between "df" runs.
|
341
|
+
|
342
|
+
commit 83aa5dede6f0f9b04a631d0875d3e4d4f7927a8c
|
343
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
344
|
+
Date: Fri Dec 9 11:35:25 2011 +0000
|
345
|
+
|
346
|
+
new_file_common: call "noop" before "create_close"
|
347
|
+
|
348
|
+
An upload could've taken a long time, ping and try to ensure
|
349
|
+
socket is valid to minimize (but not completely eliminate) the
|
350
|
+
chance create_close hits a stale socket (while reading the
|
351
|
+
response after writing to it) and becomes non-retryable. We
|
352
|
+
treat create_close specially as its less idempotent than any
|
353
|
+
other command (even other non-idempotent ones). There may be no
|
354
|
+
hope of retrying the upload at all if data was streamed and
|
355
|
+
calling create_close twice will hurt us...
|
356
|
+
|
357
|
+
commit 01c200204400c4373c5b5edeb11d1c70a8119795
|
358
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
359
|
+
Date: Thu Dec 8 18:09:38 2011 -0800
|
360
|
+
|
361
|
+
pool: shutdown backend when purging
|
362
|
+
|
363
|
+
If we started a connection, make sure it's stopped and the file
|
364
|
+
descriptor closed. Relying on GC to close file descriptors is
|
365
|
+
unreliable with some GC implementations.
|
366
|
+
|
367
|
+
commit 00d7a3cca62b19c34df66b337582a7c15c4b4848
|
368
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
369
|
+
Date: Thu Dec 8 17:59:26 2011 -0800
|
370
|
+
|
371
|
+
pool: O(1) object validity checking
|
372
|
+
|
373
|
+
Now that pools can be arbitrarily large, using an O(n) check
|
374
|
+
for object validity can be expensive.
|
375
|
+
|
376
|
+
commit 3e80aa8b62dd1b9e1d78e4c1c487f1ea5ee162cd
|
377
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
378
|
+
Date: Thu Dec 8 17:34:25 2011 -0800
|
379
|
+
|
380
|
+
pool: add @purge_threshold, @purge_keep accessors
|
381
|
+
|
382
|
+
Instead of hard coding the thresholds, allow
|
383
|
+
users to change accessors
|
384
|
+
|
385
|
+
commit f62e34251c1101b0fcdddea35dfa3f73c416a3ba
|
386
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
387
|
+
Date: Thu Dec 8 16:57:08 2011 -0800
|
388
|
+
|
389
|
+
reorganize largefile support code
|
390
|
+
|
391
|
+
Putting this into the MogileFS::Put::* namespace will
|
392
|
+
make it easier to document.
|
393
|
+
|
394
|
+
commit 50f9287610725257bf64781a2008398ff6ceeacb
|
395
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
396
|
+
Date: Thu Dec 8 15:53:09 2011 -0800
|
397
|
+
|
398
|
+
new_file(..., :largefile => :stream) avoids chunking
|
399
|
+
|
400
|
+
This allows us to stream files with a known Content-Length
|
401
|
+
into MogileFS. This can be useful for streaming an HTTP
|
402
|
+
download into MogileFS without:
|
403
|
+
|
404
|
+
* saving it to the filesystem
|
405
|
+
* relying on chunked encoding support on the server
|
406
|
+
|
407
|
+
commit a867de1e6bdf50bb7cb4316a7ecf3a9a38c9029b
|
408
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
409
|
+
Date: Thu Dec 8 21:06:51 2011 +0000
|
410
|
+
|
411
|
+
Rakefile: quiet down warnings for newer rake
|
412
|
+
|
413
|
+
commit 7a355fad7ef4932a160d2144b7e6a2c9f64c4c9c
|
414
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
415
|
+
Date: Thu Dec 8 21:01:02 2011 +0000
|
416
|
+
|
417
|
+
move Manifest.txt from git to .gitignore
|
418
|
+
|
419
|
+
It is auto-generated and goes into .gitignore
|
420
|
+
|
421
|
+
commit 4bba2b2ab0d6a00403afe8bc7575f74d45393bf9
|
422
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
423
|
+
Date: Thu Dec 8 21:00:20 2011 +0000
|
424
|
+
|
425
|
+
mog: config parser cleanup
|
426
|
+
|
427
|
+
commit e87d69883d050dfb24525a89bcd340250dad6991
|
428
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
429
|
+
Date: Thu Dec 8 20:49:57 2011 +0000
|
430
|
+
|
431
|
+
backend: auto-generate error constants on const_missing
|
432
|
+
|
433
|
+
This way, folks can rescue for exceptions we haven't defined,
|
434
|
+
yet.
|
435
|
+
|
436
|
+
commit 5c824e04d5de04b4d6c8fb58dfc60e4d3f6cd7c7
|
437
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
438
|
+
Date: Thu Dec 8 11:11:37 2011 +0000
|
439
|
+
|
440
|
+
admin: fix off-by-one in each_fid method
|
441
|
+
|
442
|
+
list_fids was being used incorrectly :x
|
443
|
+
|
444
|
+
commit ec4e5984a62cb95ef75f3004aa8932a9cc6ceb6c
|
445
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
446
|
+
Date: Thu Dec 8 09:19:17 2011 +0000
|
447
|
+
|
448
|
+
move Manifest.txt generation to Rake...
|
449
|
+
|
450
|
+
Bleh, I have revision control to tell me what's there, no need
|
451
|
+
to maintain this file (or even manually generate it) myself
|
452
|
+
|
453
|
+
commit 346b21f715e484bf9280d2d6b7ac2003b29a59ed
|
454
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
455
|
+
Date: Thu Dec 8 06:15:06 2011 +0000
|
456
|
+
|
457
|
+
store_file works on unlinked Tempfile objects
|
458
|
+
|
459
|
+
Unlinking Tempfiles is good practice, so we should
|
460
|
+
allow/encourage people to use unlinked Tempfiles
|
461
|
+
with store_file.
|
462
|
+
|
463
|
+
commit 83df70292440787ff32be893f7dd0fd2713bfdef
|
464
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
465
|
+
Date: Thu Dec 8 03:39:35 2011 +0000
|
466
|
+
|
467
|
+
new_file: add :largefile => :tempfile support
|
468
|
+
|
469
|
+
This is the most-compatible way to support largefiles
|
470
|
+
with the new_file interface. This will unfortunately
|
471
|
+
generate disk I/O, though...
|
472
|
+
|
473
|
+
Also moving the "mog" util to use this with the "tee"
|
474
|
+
subcommand since it already included its own private
|
475
|
+
implementation of this before.
|
476
|
+
|
477
|
+
commit 581148337d8345a09b32bf7c82f051eb438b6383
|
478
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
479
|
+
Date: Thu Dec 8 03:38:55 2011 +0000
|
480
|
+
|
481
|
+
http_file: big_io support for unlinked open files
|
482
|
+
|
483
|
+
This makes it easier to use an unlinked Tempfile
|
484
|
+
|
485
|
+
commit ad559b036966ba5797ac53a70e17342640d07952
|
486
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
487
|
+
Date: Wed Dec 7 11:09:37 2011 +0000
|
488
|
+
|
489
|
+
add new_file :largefile => :content_range support
|
490
|
+
|
491
|
+
This is similar to the "largefile => 1" support in the
|
492
|
+
Perl MogileFS::Client package. It requires net/http/persistent
|
493
|
+
to avoid repeatedly setting up and tearing down a socket.
|
494
|
+
|
495
|
+
commit 492bf768036b1c6287d013e37535618ebdeb8833
|
496
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
497
|
+
Date: Wed Dec 7 05:20:55 2011 +0000
|
498
|
+
|
499
|
+
new_file gains a :largefile => :chunked option
|
500
|
+
|
501
|
+
This returns a new HTTPStream object that behaves
|
502
|
+
like a writable IO object with the following methods:
|
503
|
+
|
504
|
+
* write
|
505
|
+
* print
|
506
|
+
* printf
|
507
|
+
* putc
|
508
|
+
* puts
|
509
|
+
* syswrite
|
510
|
+
* <<
|
511
|
+
|
512
|
+
..and also responds to IO.select (for writability)
|
513
|
+
|
514
|
+
commit 86318ca3e9ede3bac245a7bdcb31b9c3ad15ef67
|
515
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
516
|
+
Date: Wed Dec 7 05:18:39 2011 +0000
|
517
|
+
|
518
|
+
test/fresh: unused variable warning fix
|
519
|
+
|
520
|
+
Might as well assert on it...
|
521
|
+
|
522
|
+
commit 0bbbd8cfa2df665bc22a47831adf91668e391e3e
|
523
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
524
|
+
Date: Wed Dec 7 02:03:05 2011 +0000
|
525
|
+
|
526
|
+
http_file: use lower keepalive times under Linux
|
527
|
+
|
528
|
+
TCP keepalives are inexpensive, so we can use them to monitor
|
529
|
+
whether or not our connection is still alive while uploading.
|
530
|
+
|
531
|
+
Remote servers make take an unpredictable amount of time to
|
532
|
+
actually write out the data we've uploaded (and empty socket
|
533
|
+
buffers to receive more), so it is extremely difficult to
|
534
|
+
calculate an effective timeout for select() or poll().
|
535
|
+
|
536
|
+
commit da58f47f541cff65e814a614ecff722ba2a35bf8
|
537
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
538
|
+
Date: Wed Dec 7 01:29:43 2011 +0000
|
539
|
+
|
540
|
+
test for client-side Content-MD5 callback on upload
|
541
|
+
|
542
|
+
Some applications will rely on this feature
|
543
|
+
|
544
|
+
commit d7bec4c903bd08337b7dbf4611e618762050ed58
|
545
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
546
|
+
Date: Wed Dec 7 01:24:24 2011 +0000
|
547
|
+
|
548
|
+
Revert "http_file: disable MD5 checksums by default"
|
549
|
+
|
550
|
+
This reverts commit 11ee57e7aaa8766d13e29d3872bd78d50a3e5263.
|
551
|
+
|
552
|
+
Bleh, checksums support is already off by default...
|
553
|
+
|
554
|
+
commit 11ee57e7aaa8766d13e29d3872bd78d50a3e5263
|
555
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
556
|
+
Date: Tue Dec 6 17:06:08 2011 -0800
|
557
|
+
|
558
|
+
http_file: disable MD5 checksums by default
|
559
|
+
|
560
|
+
We won't force this onto the wire for trackers until upstream
|
561
|
+
MogileFS decides to support it.
|
562
|
+
|
563
|
+
commit d74fad403f23c1ee36b9fbf276d12b12ef5d92d1
|
564
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
565
|
+
Date: Tue Dec 6 13:25:22 2011 -0800
|
566
|
+
|
567
|
+
rely on SO_KEEPALIVE for upload timeouts
|
568
|
+
|
569
|
+
Users will be able to tweak these themselves in OS-dependent
|
570
|
+
ways. It's probably better to rely on protocol-level timeouts
|
571
|
+
when the HTTP server should be on a trusted network.
|
572
|
+
|
573
|
+
commit 296977523d04e184b954f5a00e9463dea0d8e8d6
|
574
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
575
|
+
Date: Tue Dec 6 20:54:07 2011 +0000
|
576
|
+
|
577
|
+
store_file/store_content: wire these up to new new_file opts
|
578
|
+
|
579
|
+
These allow us to specify Content-MD5 and checksums for use
|
580
|
+
with the new and improved new_file interface without breaking
|
581
|
+
existing apps.
|
582
|
+
|
583
|
+
commit 2c4dc76c6a4840865c83177ceeb217b859e20df8
|
584
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
585
|
+
Date: Tue Dec 6 20:54:06 2011 +0000
|
586
|
+
|
587
|
+
new_file: backwards compatibility for old args
|
588
|
+
|
589
|
+
commit db55f4b60ccb312881d84eea8c15daf115a7f1bd
|
590
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
591
|
+
Date: Tue Dec 6 20:54:05 2011 +0000
|
592
|
+
|
593
|
+
mog: "stat" shows checksum if it is available
|
594
|
+
|
595
|
+
Checksums are good, yes they are.
|
596
|
+
|
597
|
+
commit f5d512fe1b163e132d1698138cff83cb4a59658c
|
598
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
599
|
+
Date: Tue Dec 6 20:54:04 2011 +0000
|
600
|
+
|
601
|
+
http_file: remove unused attrs
|
602
|
+
|
603
|
+
No need to clutter ourselves up with things we don't need.
|
604
|
+
|
605
|
+
commit ad6113719d37824bcad6b8e78edafd838c9f8a78
|
606
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
607
|
+
Date: Tue Dec 6 20:54:03 2011 +0000
|
608
|
+
|
609
|
+
"new_file" gets many options for Content-MD5 handling
|
610
|
+
|
611
|
+
This still needs docs and integration with store_content and
|
612
|
+
store_file, but seems to be mostly working.
|
613
|
+
|
614
|
+
commit 652398d0def7291ea7a4e54c3e418d88038ed436
|
615
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
616
|
+
Date: Tue Dec 6 13:01:02 2011 -0800
|
617
|
+
|
618
|
+
manifest updates for mogstored_rack tests
|
619
|
+
|
620
|
+
We need to test with this client, dependencies are hard :<
|
621
|
+
|
622
|
+
commit 829d459f7335cb6eb6a2f6d24e0d6f984cef2d52
|
623
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
624
|
+
Date: Tue Dec 6 20:53:42 2011 +0000
|
625
|
+
|
626
|
+
improve diagnostics on unreadable sockets with timeout
|
627
|
+
|
628
|
+
commit 9ef18521688bb008e173bfcca57f4abcd012205f
|
629
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
630
|
+
Date: Tue Dec 6 20:54:09 2011 +0000
|
631
|
+
|
632
|
+
socket_common: small simplification in read() calculation
|
633
|
+
|
634
|
+
Minor cleanup, one less un-optimized method dispatch.
|
635
|
+
|
636
|
+
commit bafa6f41dbfda371e248656e50441bc7f6503826
|
637
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
638
|
+
Date: Tue Dec 6 20:54:08 2011 +0000
|
639
|
+
|
640
|
+
RequestTruncated exception includes timeout value used
|
641
|
+
|
642
|
+
It seems our timeout values are sometimes too low :<
|
643
|
+
|
644
|
+
commit d5f49b90ec7461b07e88eb2e13f9b510190be256
|
645
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
646
|
+
Date: Thu Dec 1 03:03:52 2011 +0000
|
647
|
+
|
648
|
+
remove mogstored_rack example
|
649
|
+
|
650
|
+
It's now a separate project:
|
651
|
+
http://bogomips.org/mogstored_rack/
|
652
|
+
|
653
|
+
commit c9f94ea9102fe7e88a6c2e4ae1065c31908f9eda
|
654
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
655
|
+
Date: Mon Nov 28 21:23:01 2011 +0000
|
656
|
+
|
657
|
+
.document: add NEWS to rdoc
|
658
|
+
|
659
|
+
We generate it, might as well..
|
660
|
+
|
661
|
+
commit bbd2522467c29a9e7d97870be2a0171fd8ee58dd
|
662
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
663
|
+
Date: Mon Nov 28 20:39:01 2011 +0000
|
664
|
+
|
665
|
+
Ruby mogilefs-client 3.0.0
|
666
|
+
|
667
|
+
Changes since 3.0.0-rc1:
|
668
|
+
|
669
|
+
* 1.8 copy_stream emulator respects creation umask
|
670
|
+
This matches the latest IO.copy_stream behavior.
|
671
|
+
[ruby-core:41308], r33851 in ruby/trunk
|
672
|
+
|
673
|
+
* higher timeouts for uploads to compensate for slow
|
674
|
+
(but not dead) servers.
|
675
|
+
|
676
|
+
Changes since v2.2.0:
|
677
|
+
|
678
|
+
=== client changes
|
679
|
+
|
680
|
+
* "store_file" now accepts any IO object capable of streaming
|
681
|
+
data (e.g. pipes and sockets). This uses chunked
|
682
|
+
Transfer-Encoding for PUTs, so backend storage nodes
|
683
|
+
will need to support this (latest mogstored does).
|
684
|
+
|
685
|
+
* "store_file" no longer uses an infinite timeout when
|
686
|
+
awaiting a response after a PUT, the new timeout for the
|
687
|
+
response is now calculated based on the time and size of
|
688
|
+
the PUT request.
|
689
|
+
|
690
|
+
* new commands: "file_debug" and "file_info" (new commands
|
691
|
+
in mogilefsd, be sure you have the latest version)
|
692
|
+
|
693
|
+
* "get_paths" takes optional ":pathcount" parameter
|
694
|
+
to control the number of returned paths.
|
695
|
+
|
696
|
+
* "get_file_data" supports offset and count for partial
|
697
|
+
transfer (requires support from storage node for
|
698
|
+
Range: requests, most HTTP servers are capable of this)
|
699
|
+
|
700
|
+
* IO.copy_stream is enabled by default under Ruby 1.9.3.
|
701
|
+
Expect performance improvements.
|
702
|
+
|
703
|
+
* "list_keys" with a passed block (for additional info) is
|
704
|
+
faster due to internal pipelining implementation and the
|
705
|
+
addition of "file_info" support.
|
706
|
+
|
707
|
+
* fixed handling of "+" in key/domain names (old bug)
|
708
|
+
|
709
|
+
* rare, truncated partial responses due to network/server
|
710
|
+
failure now raise MogileFS::InvalidResponseError
|
711
|
+
|
712
|
+
=== admin changes
|
713
|
+
|
714
|
+
Admin support is still a work-in-progress,
|
715
|
+
I usually just find myself using "mogadm" anyways.
|
716
|
+
|
717
|
+
* new admin commands: "replicate_now"
|
718
|
+
|
719
|
+
* "get_stats" no longer works on new mogilefsd versions
|
720
|
+
|
721
|
+
* get_domains handles "repl_policy" field correctly for classes
|
722
|
+
in MogileFS 2.x
|
723
|
+
|
724
|
+
* admin commands should convert all numeric fields to either
|
725
|
+
Integer or Float objects and not String representations
|
726
|
+
of numerics. Affected methods include:
|
727
|
+
get_hosts, get_devices, list_fids, each_fids, get_domains
|
728
|
+
|
729
|
+
=== miscellany
|
730
|
+
|
731
|
+
* we no longer add methods to standard Ruby classes
|
732
|
+
(at least we never /changed/ existing methods :P)
|
733
|
+
|
734
|
+
* {kgio}[http://bogomips.org/kgio] automatically used
|
735
|
+
if available, but not required to avoid exceptions
|
736
|
+
with non-blocking I/O
|
737
|
+
|
738
|
+
* dropped Ruby 1.8.6 support, 1.8.7 or later is required.
|
739
|
+
|
740
|
+
* Tested with MRI 1.8.7, 1.9.3 and Rubinius 1.2.4
|
741
|
+
|
742
|
+
* MogileFS::Mysql - deprecated, to be removed in 2012
|
743
|
+
|
744
|
+
* improved test suite
|
745
|
+
|
746
|
+
* some optional experimental features/changes,
|
747
|
+
see "git log" for details
|
748
|
+
|
749
|
+
* Added internal pipelining implementation, this is
|
750
|
+
not easy-to-use since the server can respond-out-of-order,
|
751
|
+
but still useful for things like a list_keys+file_info
|
752
|
+
loop.
|
753
|
+
|
754
|
+
commit f854b9b8a10649d1898b840a8659a69dfee693ab
|
755
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
756
|
+
Date: Mon Nov 28 20:49:01 2011 +0000
|
757
|
+
|
758
|
+
test_mogilefs_integration: remove umask/permissions check on created file
|
759
|
+
|
760
|
+
It's not consistent between Ruby versions... oh well..
|
761
|
+
|
762
|
+
commit 46e6a9058535b41a27aaac7ee98e84a335f0fade
|
763
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
764
|
+
Date: Mon Nov 28 20:48:24 2011 +0000
|
765
|
+
|
766
|
+
test_mogilefs: speling ficks
|
767
|
+
|
768
|
+
commit bc9dc23cc4552fe46f0473cf208169c41e6892aa
|
769
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
770
|
+
Date: Sat Nov 26 19:31:49 2011 +0000
|
771
|
+
|
772
|
+
copy_stream emulator respects creation umask
|
773
|
+
|
774
|
+
This matches the latest IO.copy_stream behavior.
|
775
|
+
[ruby-core:41308], r33851 in ruby/trunk
|
776
|
+
|
777
|
+
commit d806fa67899e697a2d399eff0553e9c3b60e484e
|
778
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
779
|
+
Date: Fri Nov 25 05:46:08 2011 +0000
|
780
|
+
|
781
|
+
backend: small cleanup to use case statement
|
782
|
+
|
783
|
+
Easier for me to read, this way, and OK lines are usually more
|
784
|
+
common than ERR lines :P
|
785
|
+
|
786
|
+
commit 0fce97034959a605e66ebd645bf4a1957bfed870
|
787
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
788
|
+
Date: Thu Nov 24 05:49:12 2011 +0000
|
789
|
+
|
790
|
+
mogstored_rack: add ability to change :io_size and :open_flags
|
791
|
+
|
792
|
+
This allows folks to try IO::SYNC, and maybe even IO::DIRECT.
|
793
|
+
Additionally, :io_size may be used to optimize IO::SYNC or
|
794
|
+
make IO::DIRECT _work_.
|
795
|
+
|
796
|
+
Removal of the "Tempfile" dependency means we no longer work
|
797
|
+
reliably on NFS, but nobody sane puts MogileFS devices on
|
798
|
+
NFS, anyways. (Actually, nobody sane uses NFS if atomicity
|
799
|
+
is important :P)
|
800
|
+
|
801
|
+
commit 6a1164a0ededd7f80ac3b493c78c0fa1b9b8b91b
|
802
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
803
|
+
Date: Mon Nov 21 20:39:59 2011 +0000
|
804
|
+
|
805
|
+
http_file: timeout scaling for "write" method
|
806
|
+
|
807
|
+
Increase write timeouts as we become more vested in uploading to
|
808
|
+
a socket. The remote server may take longer and longer to
|
809
|
+
respond due to accumulated I/O delays if it is writing out
|
810
|
+
to disk.
|
811
|
+
|
812
|
+
We also don't need/want a "write" method in MogileFS::Socket,
|
813
|
+
it's only for use with IO.copy_stream in HTTPFile.
|
814
|
+
|
815
|
+
commit 64b3335c8b41ca77395f7eb7bbd7d9b0a62bc8c7
|
816
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
817
|
+
Date: Mon Nov 21 01:02:15 2011 +0000
|
818
|
+
|
819
|
+
mogilefs-client 3.0.0-rc1
|
820
|
+
|
821
|
+
=== client changes
|
822
|
+
|
823
|
+
* "store_file" now accepts any IO object capable of streaming
|
824
|
+
data (e.g. pipes and sockets). This uses chunked
|
825
|
+
Transfer-Encoding for PUTs, so backend storage nodes
|
826
|
+
will need to support this (latest mogstored does).
|
827
|
+
|
828
|
+
* "store_file" no longer uses an infinite timeout when
|
829
|
+
awaiting a response after a PUT, the new timeout for the
|
830
|
+
response is now calculated based on the time and size of
|
831
|
+
the PUT request.
|
832
|
+
|
833
|
+
* new commands: "file_debug" and "file_info" (new commands
|
834
|
+
in mogilefsd, be sure you have the latest version)
|
835
|
+
|
836
|
+
* "get_paths" takes optional ":pathcount" parameter
|
837
|
+
to control the number of returned paths.
|
838
|
+
|
839
|
+
* "get_file_data" supports offset and count for partial
|
840
|
+
transfer (requires support from storage node for
|
841
|
+
Range: requests, most HTTP servers are capable of this)
|
842
|
+
|
843
|
+
* IO.copy_stream is enabled by default under Ruby 1.9.3.
|
844
|
+
Expect performance improvements.
|
845
|
+
|
846
|
+
* "list_keys" with a passed block (for additional info) is
|
847
|
+
faster due to internal pipelining implementation and the
|
848
|
+
addition of "file_info" support.
|
849
|
+
|
850
|
+
* fixed handling of "+" in key/domain names (old bug)
|
851
|
+
|
852
|
+
* rare, truncated partial responses due to network/server
|
853
|
+
failure now raise MogileFS::InvalidResponseError
|
854
|
+
|
855
|
+
=== admin changes
|
856
|
+
|
857
|
+
Admin support is still a work-in-progress,
|
858
|
+
I usually just find myself using "mogadm" anyways.
|
859
|
+
|
860
|
+
* new admin commands: "replicate_now"
|
861
|
+
|
862
|
+
* "get_stats" no longer works on new mogilefsd versions
|
863
|
+
|
864
|
+
* get_domains handles "repl_policy" field correctly for classes
|
865
|
+
in MogileFS 2.x
|
866
|
+
|
867
|
+
* admin commands should convert all numeric fields to either
|
868
|
+
Integer or Float objects and not String representations
|
869
|
+
of numerics. Affected methods include:
|
870
|
+
get_hosts, get_devices, list_fids, each_fids, get_domains
|
871
|
+
|
872
|
+
=== miscellany
|
873
|
+
|
874
|
+
* we no longer add methods to standard Ruby classes
|
875
|
+
(at least we never /changed/ existing methods :P)
|
876
|
+
|
877
|
+
* {kgio}[http://bogomips.org/kgio] automatically used
|
878
|
+
if available, but not required to avoid exceptions
|
879
|
+
with non-blocking I/O
|
880
|
+
|
881
|
+
* dropped Ruby 1.8.6 support, 1.8.7 or later is required.
|
882
|
+
|
883
|
+
* Tested with MRI 1.8.7, 1.9.3 and Rubinius 1.2.4
|
884
|
+
|
885
|
+
* MogileFS::Mysql - deprecated, to be removed in 2012
|
886
|
+
|
887
|
+
* improved test suite
|
888
|
+
|
889
|
+
* some optional experimental features/changes,
|
890
|
+
see "git log" for details
|
891
|
+
|
892
|
+
* Added internal pipelining implementation, this is
|
893
|
+
not easy-to-use since the server can respond-out-of-order,
|
894
|
+
but still useful for things like a list_keys+file_info
|
895
|
+
loop.
|
896
|
+
|
897
|
+
commit 126019445776ed08dd33d60e146a9d2e5786cf7c
|
898
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
899
|
+
Date: Mon Nov 21 00:06:23 2011 +0000
|
900
|
+
|
901
|
+
http_file: wait for the destination server to respond
|
902
|
+
|
903
|
+
Uploading large files can cause the destination to take
|
904
|
+
equally long to respond, either because of extra I/O
|
905
|
+
needed to verify or because we've hit fsync(2) or similar.
|
906
|
+
|
907
|
+
commit a292a04a7e8c7cf65b6f9a7462c97b10010e4877
|
908
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
909
|
+
Date: Mon Nov 21 00:05:56 2011 +0000
|
910
|
+
|
911
|
+
test/fresh: raise if mogadm fails to return writability
|
912
|
+
|
913
|
+
We don't want dependent tests to continue
|
914
|
+
|
915
|
+
commit fbf389f5e1bb0742726e8b3923074a72c410db10
|
916
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
917
|
+
Date: Mon Nov 21 00:05:33 2011 +0000
|
918
|
+
|
919
|
+
mogstored_rack: fix Ruby 1.8 compatibility
|
920
|
+
|
921
|
+
Tempfile.open works differently, there.
|
922
|
+
|
923
|
+
commit d3c08764deb3345c5bdc34b35d2dd2a2d8a4771e
|
924
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
925
|
+
Date: Mon Nov 21 00:05:02 2011 +0000
|
926
|
+
|
927
|
+
test_mogilefs: fix bad test due to partial read
|
928
|
+
|
929
|
+
Ugh, shouldn't use sysread there
|
930
|
+
|
931
|
+
commit a73444af13ce8ac9cd94347c627f8191b3a80634
|
932
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
933
|
+
Date: Sun Nov 20 11:16:30 2011 +0000
|
934
|
+
|
935
|
+
examples/mogstored_rack: fix temporary file path
|
936
|
+
|
937
|
+
We always want to use the destination directory as the
|
938
|
+
temporary directory to avoid cross-device link/rename
|
939
|
+
attempts.
|
940
|
+
|
941
|
+
commit 21fc20b7d798c3eab6155b24dcb58c95b53ef856
|
942
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
943
|
+
Date: Sun Nov 20 06:29:26 2011 +0000
|
944
|
+
|
945
|
+
add mogstored_rack example
|
946
|
+
|
947
|
+
This should allow any Rack server to become an HTTP server for
|
948
|
+
mogstored.
|
949
|
+
|
950
|
+
When using one of Unicorn/Rainbows!/Zbatery, the Content-MD5
|
951
|
+
HTTP Trailer will be supported. Otherwise, Content-MD5 can
|
952
|
+
always be supported as a regular HTTP header (at the cost of
|
953
|
+
requiring the client to read whatever they upload twice).
|
954
|
+
|
955
|
+
commit 6018860fe20c82daa131cb9e30dba228c862c540
|
956
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
957
|
+
Date: Sun Nov 20 03:09:33 2011 +0000
|
958
|
+
|
959
|
+
split out test for fresh mogilefsd instance testing
|
960
|
+
|
961
|
+
commit 9922005b9da00d4709202d87b434ca93c6b53a01
|
962
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
963
|
+
Date: Sun Nov 20 02:22:19 2011 +0000
|
964
|
+
|
965
|
+
test_fresh: factor out mogstored setup
|
966
|
+
|
967
|
+
We'll support alternate mogstored setups...
|
968
|
+
|
969
|
+
commit 7f721b1608882afa15c28be0ec6071fb1e4e5872
|
970
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
971
|
+
Date: Sun Nov 20 02:21:44 2011 +0000
|
972
|
+
|
973
|
+
test/exec: close-on-exec all Tempfiles
|
974
|
+
|
975
|
+
commit f8156e239ea4da4cbcd020f24bf06c4fb9e7cde7
|
976
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
977
|
+
Date: Sat Nov 19 08:45:07 2011 +0000
|
978
|
+
|
979
|
+
support MogileFS::MogileFS#get_file_data to dest path
|
980
|
+
|
981
|
+
Destination path will be created with 0600 permissions to
|
982
|
+
be consistent with IO.copy_stream [ruby-core:41151]
|
983
|
+
|
984
|
+
commit 381044eeda55a5ca7edcccd87d27c30a287723e1
|
985
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
986
|
+
Date: Sat Nov 19 00:18:31 2011 +0000
|
987
|
+
|
988
|
+
test_admin: fix test due to broken mocks
|
989
|
+
|
990
|
+
integration tests > unit tests :P
|
991
|
+
|
992
|
+
commit d2c175aaafa9a06c377de5df609759073d93e894
|
993
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
994
|
+
Date: Sat Nov 19 00:13:28 2011 +0000
|
995
|
+
|
996
|
+
mog: config parser handles "noclobber = true"
|
997
|
+
|
998
|
+
noclobber is false by default
|
999
|
+
|
1000
|
+
commit 01f65edf9594fdd811c5671a429b98ffff6f6523
|
1001
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1002
|
+
Date: Sat Nov 19 00:10:15 2011 +0000
|
1003
|
+
|
1004
|
+
mog: add --no-clobber/-n option for 'cp' and 'tee'
|
1005
|
+
|
1006
|
+
Overwriting data is bad, sometimes
|
1007
|
+
|
1008
|
+
commit cbce24009023b7cbd751c8c027281673d0cdaa27
|
1009
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1010
|
+
Date: Sat Nov 19 00:00:07 2011 +0000
|
1011
|
+
|
1012
|
+
add MogileFS::MogileFS#exist? method
|
1013
|
+
|
1014
|
+
Similar to File.exist? for checking the existence of
|
1015
|
+
a particular file.
|
1016
|
+
|
1017
|
+
commit 2ff4eacf708a3f2e42140a34568bf3792c063618
|
1018
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1019
|
+
Date: Fri Nov 18 23:14:08 2011 +0000
|
1020
|
+
|
1021
|
+
admin (each_fid/list_fids): remove dependency on get_stats
|
1022
|
+
|
1023
|
+
The +to+ arg of list_fids is now actually +count+ internally
|
1024
|
+
because gaps may appear in an auto-incrementing FID range
|
1025
|
+
(due to deleted files). We also have a default +count+ of
|
1026
|
+
100 (matches the internal MogileFS default).
|
1027
|
+
|
1028
|
+
commit e6edebe4288c98827e723d75fe9fea4c1a0b013f
|
1029
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1030
|
+
Date: Fri Nov 18 22:49:55 2011 +0000
|
1031
|
+
|
1032
|
+
backend: make url_decode easier to read (for me, at least)
|
1033
|
+
|
1034
|
+
I never learned to read Hash[] well. Also, String#freeze on
|
1035
|
+
keys to prevent Ruby from calling String#dup for us.
|
1036
|
+
|
1037
|
+
commit b4b3ec9ac07dad1aab6da1d3ba9c26c4b7959dc2
|
1038
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1039
|
+
Date: Fri Nov 18 22:45:58 2011 +0000
|
1040
|
+
|
1041
|
+
admin: add numeric conversions for consistency
|
1042
|
+
|
1043
|
+
Ruby isn't Perl, Ruby won't automatically coerce between
|
1044
|
+
Strings and numeric types (Integer and Floats)
|
1045
|
+
|
1046
|
+
commit 8d2e9c8a10cb6a53874e47a30b63e194f12d80fb
|
1047
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1048
|
+
Date: Fri Nov 18 22:04:47 2011 +0000
|
1049
|
+
|
1050
|
+
admin (list_fids,each_fid): convert integer fields to integers
|
1051
|
+
|
1052
|
+
fid, devcount, length are all integers, so ensure they're
|
1053
|
+
actual Integer (Fixnum/Bignum) objects.
|
1054
|
+
|
1055
|
+
commit 7498d798dd6b274383e9e0d6d40ed2b725129227
|
1056
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1057
|
+
Date: Fri Nov 18 21:44:56 2011 +0000
|
1058
|
+
|
1059
|
+
admin: get_stats is deprecated and gone from latest MogileFS
|
1060
|
+
|
1061
|
+
Newer versions of mogilefsd do not support this command,
|
1062
|
+
use mogstats(1) from MogileFS::Utils (on CPAN) instead.
|
1063
|
+
|
1064
|
+
commit 1d891c7d0c300444c8327222fdee95cd3174c667
|
1065
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1066
|
+
Date: Fri Nov 18 10:50:25 2011 +0000
|
1067
|
+
|
1068
|
+
admin: add clear_cache command
|
1069
|
+
|
1070
|
+
Currently a no-op in MogileFS 2.55, but it was useful at one
|
1071
|
+
point in the past and may be in the future.
|
1072
|
+
|
1073
|
+
commit 4074889c30690a3effef4fe49fa5a75f7d6c8e51
|
1074
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1075
|
+
Date: Fri Nov 18 10:23:50 2011 +0000
|
1076
|
+
|
1077
|
+
admin: add support for replicate_now command
|
1078
|
+
|
1079
|
+
commit 0c86accfccef5637823574d575831c9b3c5a752f
|
1080
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1081
|
+
Date: Fri Nov 18 03:03:35 2011 +0000
|
1082
|
+
|
1083
|
+
mogilefs: documentation update
|
1084
|
+
|
1085
|
+
* re-document exception classes
|
1086
|
+
* latest upstream MogileFS is 2.55
|
1087
|
+
|
1088
|
+
commit 0f22b7030f5ba9fc033f19b850356d9e826eb792
|
1089
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1090
|
+
Date: Fri Nov 18 03:00:20 2011 +0000
|
1091
|
+
|
1092
|
+
make MogileFS.io= an accessor
|
1093
|
+
|
1094
|
+
In case somebody wants to use this to override the
|
1095
|
+
default class for copy_stream in Ruby. It's also
|
1096
|
+
easier to read, this way.
|
1097
|
+
|
1098
|
+
commit b7d6538453082e92d4ab98cbbf9c9db7aa7c70a7
|
1099
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1100
|
+
Date: Fri Nov 18 02:41:08 2011 +0000
|
1101
|
+
|
1102
|
+
TODO: add manpage item for "mog"
|
1103
|
+
|
1104
|
+
Maybe it'll actually get used.
|
1105
|
+
|
1106
|
+
commit d2c3306bf731e37b4ff05c7790df6434ee326afe
|
1107
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1108
|
+
Date: Thu Nov 17 09:57:48 2011 +0000
|
1109
|
+
|
1110
|
+
mog: improve "stat" subcommand
|
1111
|
+
|
1112
|
+
* return error if there was a missing key
|
1113
|
+
* use file_info to help us determine info
|
1114
|
+
* show all URLs for a given key
|
1115
|
+
|
1116
|
+
commit 53279166865f7cd41976b7235713ce58c83e7dd1
|
1117
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1118
|
+
Date: Thu Nov 17 09:49:51 2011 +0000
|
1119
|
+
|
1120
|
+
mog: fix shadow warnings
|
1121
|
+
|
1122
|
+
Found with "ruby -w" on 1.9.3
|
1123
|
+
|
1124
|
+
commit 31e37c1588c7413fb1d6e53f741a21542a20c8b2
|
1125
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1126
|
+
Date: Thu Nov 17 09:45:02 2011 +0000
|
1127
|
+
|
1128
|
+
mog: add --version switch
|
1129
|
+
|
1130
|
+
It's sometimes handy to know which version we're running
|
1131
|
+
|
1132
|
+
commit 562e8b1a1e80e92f0b38891f5516efa221a1a6ce
|
1133
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1134
|
+
Date: Thu Nov 17 09:42:51 2011 +0000
|
1135
|
+
|
1136
|
+
mog: fix unchunked tee
|
1137
|
+
|
1138
|
+
Also, just use aliases while we're at it
|
1139
|
+
|
1140
|
+
commit 255da707c4460a576b7ed7cd5da818a2f5efa1ef
|
1141
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1142
|
+
Date: Thu Nov 17 09:41:02 2011 +0000
|
1143
|
+
|
1144
|
+
mog: "tee" subcommand does not require a --class
|
1145
|
+
|
1146
|
+
We can just use default
|
1147
|
+
|
1148
|
+
commit 5a8ed22d5ee2e101fdfd982589cf6dfe1fa1fa5e
|
1149
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1150
|
+
Date: Mon Nov 14 15:46:37 2011 -0800
|
1151
|
+
|
1152
|
+
mysql: deprecate this interface
|
1153
|
+
|
1154
|
+
In hindsight, it's not appropriate and should be a separate
|
1155
|
+
project...
|
1156
|
+
|
1157
|
+
commit 1d53980c8a23e15e5a9a91fcd265cc5a647d6544
|
1158
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1159
|
+
Date: Mon Nov 14 15:00:03 2011 -0800
|
1160
|
+
|
1161
|
+
doc: update TODO
|
1162
|
+
|
1163
|
+
We have goals, yes we do
|
1164
|
+
|
1165
|
+
commit d3014a97fb97e290bcbefeeee3d015a04eb37e07
|
1166
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1167
|
+
Date: Mon Nov 14 14:55:41 2011 -0800
|
1168
|
+
|
1169
|
+
doc: add file_info example
|
1170
|
+
|
1171
|
+
It can be useful, yes.
|
1172
|
+
|
1173
|
+
commit c5a7ef1be173875dafa4804af53e499688bd9452
|
1174
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1175
|
+
Date: Mon Nov 14 14:52:09 2011 -0800
|
1176
|
+
|
1177
|
+
file_info_cleanup: nodoc this internal method
|
1178
|
+
|
1179
|
+
commit 31c413e69514a9b99cf96f3382fb03dee6552d6f
|
1180
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1181
|
+
Date: Mon Nov 14 11:01:22 2011 +0000
|
1182
|
+
|
1183
|
+
http_file: use String#inspect on broken server response
|
1184
|
+
|
1185
|
+
If we have a broken server, it could've spewed anything, so
|
1186
|
+
use #inspect to clean it up in case somebody put malicious
|
1187
|
+
escape sequences in the server response.
|
1188
|
+
|
1189
|
+
commit 52a19f3c4ed9da852eac809276d7f64fe4defbef
|
1190
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1191
|
+
Date: Mon Nov 14 10:57:43 2011 +0000
|
1192
|
+
|
1193
|
+
Revert "http_file: do not reopen opened file (on retry)"
|
1194
|
+
|
1195
|
+
As it turns out, the previous change was wrong since we have to
|
1196
|
+
reopen it anyways as "upload" is called in a loop. Attempting
|
1197
|
+
to rewind @active is still a good error-check, though.
|
1198
|
+
|
1199
|
+
This reverts commit 754b8077b55e37627c32d1339227001d509d8517.
|
1200
|
+
|
1201
|
+
commit 754b8077b55e37627c32d1339227001d509d8517
|
1202
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1203
|
+
Date: Mon Nov 14 09:55:01 2011 +0000
|
1204
|
+
|
1205
|
+
http_file: do not reopen opened file (on retry)
|
1206
|
+
|
1207
|
+
Since we can either rewind it or we can't, we shouldn't
|
1208
|
+
reopen already-opened files.
|
1209
|
+
|
1210
|
+
commit b8b0c8003ca16cc123c99e91fa65e8702a02a86f
|
1211
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1212
|
+
Date: Mon Nov 14 09:54:22 2011 +0000
|
1213
|
+
|
1214
|
+
socket_test: ensure timed_write returns proper bytes
|
1215
|
+
|
1216
|
+
We rely on this since we alias "write" to this and
|
1217
|
+
IO.copy_stream relies on the proper return value.
|
1218
|
+
|
1219
|
+
commit fb6a9f43728f46efee4e3f4aa6c689d260ae7387
|
1220
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1221
|
+
Date: Mon Nov 14 09:53:26 2011 +0000
|
1222
|
+
|
1223
|
+
test_mogilefs: do not assume header + body is in one recv()
|
1224
|
+
|
1225
|
+
One can never guarantee this with TCP.
|
1226
|
+
|
1227
|
+
commit 41d9b886e9ae1bea35753d6f5de958154809330a
|
1228
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1229
|
+
Date: Mon Nov 14 09:38:42 2011 +0000
|
1230
|
+
|
1231
|
+
mog: teach tee to optionally --chunk uploads
|
1232
|
+
|
1233
|
+
On some backend servers (latest Perlbal), chunked uploads work,
|
1234
|
+
so we can stream uploads to them without buffering to a
|
1235
|
+
Tempfile. Of course, this destroys our ability to retry...
|
1236
|
+
|
1237
|
+
commit 46f51f4eaaef4e8f7b36fe5f881551099d5113b8
|
1238
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1239
|
+
Date: Mon Nov 14 09:24:05 2011 +0000
|
1240
|
+
|
1241
|
+
mog: fix "test -e" on missing files
|
1242
|
+
|
1243
|
+
commit 431de2b3f7b3b80a8f6da01549f475cff945f2bb
|
1244
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1245
|
+
Date: Mon Nov 14 09:21:27 2011 +0000
|
1246
|
+
|
1247
|
+
list_keys_verbose: pipeline retries on all socket errors
|
1248
|
+
|
1249
|
+
We'll try to retry for all transient issues that aren't
|
1250
|
+
our fault
|
1251
|
+
|
1252
|
+
commit 7faeab6c16cf127024d2cd8ce0de151e5375d199
|
1253
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1254
|
+
Date: Mon Nov 14 09:16:23 2011 +0000
|
1255
|
+
|
1256
|
+
http_file: ensure regular paths are rewound, too
|
1257
|
+
|
1258
|
+
We could also reopen them, but it's harder to test FIFOs
|
1259
|
+
for rewindability (and fail) that way.
|
1260
|
+
|
1261
|
+
commit a37a40ae2eed07439e23e3f4366816576ab801c9
|
1262
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1263
|
+
Date: Sun Nov 13 07:47:16 2011 +0000
|
1264
|
+
|
1265
|
+
socket: alias write to timed_write
|
1266
|
+
|
1267
|
+
All of our writes must respect timeouts.
|
1268
|
+
Return value must be the number bytes written.
|
1269
|
+
|
1270
|
+
commit 63b390fb6e6ea43f20c42865efa2b370f4fb0c55
|
1271
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1272
|
+
Date: Sun Nov 13 06:53:21 2011 +0000
|
1273
|
+
|
1274
|
+
mog: small cleanups
|
1275
|
+
|
1276
|
+
* use warn instead of STDERR.puts
|
1277
|
+
* prefer $std* to STD*, they're less ambiguous
|
1278
|
+
* $stderr doesn't need binmode, we don't hit it directly
|
1279
|
+
|
1280
|
+
commit fab3a54359e7ddd67b96be010ce7fcdee31b23a6
|
1281
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1282
|
+
Date: Sun Nov 13 06:45:50 2011 +0000
|
1283
|
+
|
1284
|
+
mog: ensure stdout/stderr are always sync=true
|
1285
|
+
|
1286
|
+
Luserspace buffering is often confusing to users reading
|
1287
|
+
input, and performance-wise it's more often a waste
|
1288
|
+
of memory bandwidth than it saves for syscall reductions,
|
1289
|
+
especially since we usually do large transfers.
|
1290
|
+
|
1291
|
+
commit 7bedbf3ed5920a922da89874a2bd134fb1a82c83
|
1292
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1293
|
+
Date: Sat Nov 12 12:28:49 2011 +0000
|
1294
|
+
|
1295
|
+
list_keys_verbose: retry on pipeline error
|
1296
|
+
|
1297
|
+
Sometimes a server will shut down on us in the
|
1298
|
+
middle of a pipeline. That is bad.
|
1299
|
+
|
1300
|
+
commit 435d43d6b85481e7b678c3092dec7fcb246e30e8
|
1301
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1302
|
+
Date: Sat Nov 12 11:57:17 2011 +0000
|
1303
|
+
|
1304
|
+
backend: document pipeline_dispatch behavior
|
1305
|
+
|
1306
|
+
It's tricky, but possible to get right (at least for list_keys)
|
1307
|
+
|
1308
|
+
commit d48dcc1d1e4679cf7dbd428fa4d2e7932f9839d3
|
1309
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1310
|
+
Date: Sat Nov 12 09:22:56 2011 +0000
|
1311
|
+
|
1312
|
+
list_keys_verbose: preserve ordering with multiple queryworkers
|
1313
|
+
|
1314
|
+
When multiple queryworkers are used in the tracker, it's
|
1315
|
+
possible to receive responses out-of-order. We need to
|
1316
|
+
hold onto responses while the pipeline is being processed
|
1317
|
+
and only make callbacks when they can be made in the
|
1318
|
+
order the keys were given to us in.
|
1319
|
+
|
1320
|
+
commit ec7e00ad0a277c3b760d0f88482108bd0624224e
|
1321
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1322
|
+
Date: Sat Nov 12 08:01:12 2011 +0000
|
1323
|
+
|
1324
|
+
fix misnamed exceptions
|
1325
|
+
|
1326
|
+
PipelineError was misnamed should be recoverable in user code.
|
1327
|
+
MogileFS::Error should be raised for bugs (in our code or
|
1328
|
+
user's code).
|
1329
|
+
|
1330
|
+
commit fd01fa4d894130e2e7dec48b3ea45846124cd15d
|
1331
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1332
|
+
Date: Fri Nov 11 17:52:46 2011 -0800
|
1333
|
+
|
1334
|
+
list_keys: more accurate devcount file_info-less servers
|
1335
|
+
|
1336
|
+
get_paths defaults to pathcount=2, we want all of them,
|
1337
|
+
so INT_MAX should be enough...
|
1338
|
+
|
1339
|
+
commit 8b377466612afc2fead11e462a26bcf12be86df4
|
1340
|
+
Merge: 89e0eb4 beed7ec
|
1341
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1342
|
+
Date: Fri Nov 11 17:48:42 2011 -0800
|
1343
|
+
|
1344
|
+
Merge remote-tracking branch 'origin/pipeline'
|
1345
|
+
|
1346
|
+
* origin/pipeline:
|
1347
|
+
list_keys/each_key: better handling of verbose listings
|
1348
|
+
pipeline: make errors easier to debug by including the request
|
1349
|
+
initial pipeline API
|
1350
|
+
|
1351
|
+
commit 89e0eb49aa39b22b3de041dcc1db4ce6fe6c2a07
|
1352
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1353
|
+
Date: Fri Nov 11 17:39:25 2011 -0800
|
1354
|
+
|
1355
|
+
auto-generate mogilefs/version from git
|
1356
|
+
|
1357
|
+
GIT-VERSION-GEN was ported from Bourne shell to Ruby.
|
1358
|
+
|
1359
|
+
commit b2c478eb88f442adb44b1fbe21ee25c1d368ae89
|
1360
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1361
|
+
Date: Fri Nov 11 15:55:04 2011 -0800
|
1362
|
+
|
1363
|
+
socket/pure_ruby: reduce Errno::EAGAIN exceptions
|
1364
|
+
|
1365
|
+
Exceptions are expensive, and Errno::EAGAIN is especially so
|
1366
|
+
in MRI 1.9.2+, so avoid generating too many of them. This
|
1367
|
+
is the whole reason kgio exists, after all.
|
1368
|
+
|
1369
|
+
commit 890b3904c770955cdb0a70864060f99786a4f402
|
1370
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1371
|
+
Date: Fri Nov 11 15:51:14 2011 -0800
|
1372
|
+
|
1373
|
+
test_fresh: factor out setup_mogilefs routine
|
1374
|
+
|
1375
|
+
We need to support plugins in the nearish future
|
1376
|
+
|
1377
|
+
commit beed7ecfbcb062283cd8842e03f7ccd57f477f49
|
1378
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1379
|
+
Date: Fri Nov 11 23:26:23 2011 +0000
|
1380
|
+
|
1381
|
+
list_keys/each_key: better handling of verbose listings
|
1382
|
+
|
1383
|
+
This allows us to implement "mog ls -l" much more efficiently
|
1384
|
+
|
1385
|
+
commit d9b4aa1ad01a0506a544eaabe02a9852d01d5d4f
|
1386
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1387
|
+
Date: Fri Nov 11 10:51:44 2011 +0000
|
1388
|
+
|
1389
|
+
pipeline: make errors easier to debug by including the request
|
1390
|
+
|
1391
|
+
Otherwise it's outright painful to figure out what failed in a
|
1392
|
+
pipeline...
|
1393
|
+
|
1394
|
+
commit df3064c1cd63a9f626938f1dcde44f1909971a59
|
1395
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1396
|
+
Date: Fri Nov 11 02:18:39 2011 -0800
|
1397
|
+
|
1398
|
+
initial pipeline API
|
1399
|
+
|
1400
|
+
This is useful for the "verbose" listing of keys since
|
1401
|
+
we make a lot of file_info calls here. This API feels
|
1402
|
+
very awkward, but I think it's unavoidable...
|
1403
|
+
|
1404
|
+
commit de7803e4c9732b5805679d4cada6370e26fd5d67
|
1405
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1406
|
+
Date: Fri Nov 11 15:24:21 2011 -0800
|
1407
|
+
|
1408
|
+
test/test_backend: fix broken escaping test
|
1409
|
+
|
1410
|
+
This is a followup to commit
|
1411
|
+
55de4a3375793fa31993a1e9b4be777007bd31b8
|
1412
|
+
(url_unescape: fix ordering of "+" => " " of swap)
|
1413
|
+
|
1414
|
+
commit 3d067dcb24644bf78260569a9de6e6cdd60fd469
|
1415
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1416
|
+
Date: Fri Nov 11 11:05:51 2011 +0000
|
1417
|
+
|
1418
|
+
Rakefile: packaging updates
|
1419
|
+
|
1420
|
+
commit 55de4a3375793fa31993a1e9b4be777007bd31b8
|
1421
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1422
|
+
Date: Fri Nov 11 10:47:16 2011 +0000
|
1423
|
+
|
1424
|
+
url_unescape: fix ordering of "+" => " " of swap
|
1425
|
+
|
1426
|
+
Otherwise we'll be converting "%2B" into " " instead of
|
1427
|
+
"+" when it appears in a file name.
|
1428
|
+
|
1429
|
+
commit 45f519f571cf88e1710e8175cff5742bed070ff9
|
1430
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1431
|
+
Date: Thu Nov 10 16:48:28 2011 -0800
|
1432
|
+
|
1433
|
+
backend: factor out dispatch unlocked
|
1434
|
+
|
1435
|
+
We may use this for pipelining
|
1436
|
+
|
1437
|
+
commit 8a54ed8e52e428cb3790d71bed2b99ac52e0b991
|
1438
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1439
|
+
Date: Thu Nov 10 16:04:00 2011 -0800
|
1440
|
+
|
1441
|
+
doc: misc updates
|
1442
|
+
|
1443
|
+
commit 8b1057fe8105f5672f89b87fffdee3a129e7764f
|
1444
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1445
|
+
Date: Thu Nov 10 16:00:45 2011 -0800
|
1446
|
+
|
1447
|
+
admin: use Object#__send__ since Object#send can be overwritten
|
1448
|
+
|
1449
|
+
commit 3f222d41cbfe01671dce51e6329c2d949f30111a
|
1450
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1451
|
+
Date: Thu Nov 10 15:59:36 2011 -0800
|
1452
|
+
|
1453
|
+
backend: avoid eval for defining error classes
|
1454
|
+
|
1455
|
+
commit fea4e19859025e458078f30d16be13bfe57dd8d2
|
1456
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1457
|
+
Date: Thu Nov 10 15:56:46 2011 -0800
|
1458
|
+
|
1459
|
+
Revert "Compact get_paths output so we don't have nils"
|
1460
|
+
|
1461
|
+
This reverts commit f0ed5cb6ec6851a367175a93398e813e2d62667f.
|
1462
|
+
|
1463
|
+
Unnecessary paranoia, our Backend is more robust nowadays
|
1464
|
+
by requiring CRLF before parsing
|
1465
|
+
|
1466
|
+
commit f570240f9fe1b44fcb72eb78d74cada0844ca39d
|
1467
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1468
|
+
Date: Thu Nov 10 15:54:54 2011 -0800
|
1469
|
+
|
1470
|
+
mogilefs/mogilefs: make @domain an accessor
|
1471
|
+
|
1472
|
+
It makes sense for use with MogileFS::Pool (in case somebody
|
1473
|
+
is pooling connections).
|
1474
|
+
|
1475
|
+
commit 4728ddc616e50727a2cf325ffb4cacb3f3163921
|
1476
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1477
|
+
Date: Thu Nov 10 15:23:46 2011 -0800
|
1478
|
+
|
1479
|
+
get_paths defaults to noverify: true
|
1480
|
+
|
1481
|
+
This restores 2.x behavior and is faster and safer since
|
1482
|
+
we're smart enough to deal with failover. Also dropping
|
1483
|
+
default @zone support since it doesn't seem that useful.
|
1484
|
+
|
1485
|
+
commit 7e24f6dc9f5aa90f123dc0e9ee10d22d57a6dee1
|
1486
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1487
|
+
Date: Thu Nov 10 12:37:14 2011 -0800
|
1488
|
+
|
1489
|
+
test_http_reader: fix stupid/broken assertion
|
1490
|
+
|
1491
|
+
I shouldn't be allowed to code.
|
1492
|
+
|
1493
|
+
commit fb77320dfa382190e1f724a7c9f00dd629dfa954
|
1494
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1495
|
+
Date: Thu Nov 10 10:58:22 2011 +0000
|
1496
|
+
|
1497
|
+
test/test_http_reader: fix unused var warning
|
1498
|
+
|
1499
|
+
commit c6ae612f3022e4f010dc8ecce7b19e11e6b12f93
|
1500
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1501
|
+
Date: Thu Nov 10 10:16:23 2011 +0000
|
1502
|
+
|
1503
|
+
documentation/packaging updates
|
1504
|
+
|
1505
|
+
Trying to find a happy medium within Hoe while keeping
|
1506
|
+
my preference for gmake and forcing wrongdoc on readers:
|
1507
|
+
JavaScript and GUIs all suck :P
|
1508
|
+
|
1509
|
+
commit 7b4f4a079e1fa86aab41b7d8238ca07593159eb9
|
1510
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1511
|
+
Date: Thu Nov 10 09:22:49 2011 +0000
|
1512
|
+
|
1513
|
+
backend: more descriptive error for backends being unreachable
|
1514
|
+
|
1515
|
+
Each backend could have a different story to tell
|
1516
|
+
|
1517
|
+
commit febf8fc2aab898218333e245bab4bda972de5692
|
1518
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1519
|
+
Date: Thu Nov 10 05:28:08 2011 +0000
|
1520
|
+
|
1521
|
+
ensure get_file_data users notice truncated responses
|
1522
|
+
|
1523
|
+
We don't want to silently truncate data on our users,
|
1524
|
+
that would be bad.
|
1525
|
+
|
1526
|
+
commit 9c0a7c670494fb55fb8ef98838fa0f53aab38d0d
|
1527
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1528
|
+
Date: Thu Nov 10 01:24:10 2011 +0000
|
1529
|
+
|
1530
|
+
socket/pure_ruby: swap IO#wait for IO#select
|
1531
|
+
|
1532
|
+
The return value of IO#wait is strange and confusing,
|
1533
|
+
relying on FIONREAD is a waste of time anyways.
|
1534
|
+
|
1535
|
+
commit 38a38766deef994577cfb89e7a1b5a30e8bcd7eb
|
1536
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1537
|
+
Date: Thu Nov 10 01:16:59 2011 +0000
|
1538
|
+
|
1539
|
+
test: set Thread.abort_on_exception= true
|
1540
|
+
|
1541
|
+
Should make tests easier to fix and debug.
|
1542
|
+
|
1543
|
+
commit 39202060afca2be96c1d01dd83b738de0bd2cc7f
|
1544
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1545
|
+
Date: Thu Nov 10 01:16:20 2011 +0000
|
1546
|
+
|
1547
|
+
backend: fix idempotent retry logic
|
1548
|
+
|
1549
|
+
We don't want to blindly retry on invalid keys and such,
|
1550
|
+
only on invalid (truncated) responses, timeouts, and
|
1551
|
+
syscall errors.
|
1552
|
+
|
1553
|
+
commit 265f3d32126cf2a31587a6021494f528bbdf8171
|
1554
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1555
|
+
Date: Wed Nov 9 10:06:39 2011 +0000
|
1556
|
+
|
1557
|
+
fix warnings, oops
|
1558
|
+
|
1559
|
+
Found with 1.9.3
|
1560
|
+
|
1561
|
+
commit 4b8bff9f4c90e6eb442c82b6f125279600311bf4
|
1562
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1563
|
+
Date: Wed Nov 9 09:06:19 2011 +0000
|
1564
|
+
|
1565
|
+
backend: automatically retry on idempotent commands
|
1566
|
+
|
1567
|
+
Read-only commands to the MogileFS tracker may be safely
|
1568
|
+
retried if a request is sent but no response is received.
|
1569
|
+
|
1570
|
+
commit e0711f60d8cdd49e543764ce2252d77163cf6fd5
|
1571
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1572
|
+
Date: Wed Nov 9 02:06:50 2011 +0000
|
1573
|
+
|
1574
|
+
avoid NilMethodError if get_file_data is passed an invalid key
|
1575
|
+
|
1576
|
+
It should raise on an unknown key, of course.
|
1577
|
+
|
1578
|
+
commit bbad43ec56c978c2d62c8f429354b04d20683c99
|
1579
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1580
|
+
Date: Tue Nov 8 23:33:28 2011 +0000
|
1581
|
+
|
1582
|
+
Rakefile: remove ZenTest test dependency
|
1583
|
+
|
1584
|
+
I don't use any of its tools
|
1585
|
+
|
1586
|
+
commit 42449ebe6d56ef76249c52267fe5e786edccbba5
|
1587
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1588
|
+
Date: Tue Nov 8 22:46:22 2011 +0000
|
1589
|
+
|
1590
|
+
get_file_data supports offset and count
|
1591
|
+
|
1592
|
+
Just like IO.copy_stream
|
1593
|
+
|
1594
|
+
commit d9d627d79f5beb38b048ce17c88b779eda1a75b8
|
1595
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1596
|
+
Date: Tue Nov 8 22:46:08 2011 +0000
|
1597
|
+
|
1598
|
+
update Manifest (ugh)
|
1599
|
+
|
1600
|
+
commit 60a31e86ee57d5d1f3b25bde6d2ea1e718f0353b
|
1601
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1602
|
+
Date: Tue Nov 8 22:11:21 2011 +0000
|
1603
|
+
|
1604
|
+
get_paths: expand and improve tests
|
1605
|
+
|
1606
|
+
get_paths may take a Hash for its optional arguments and
|
1607
|
+
now supports the optional :pathcount argument.
|
1608
|
+
There may now be a default @zone for MogileFS::MogileFS
|
1609
|
+
objects as well (specified via :zone).
|
1610
|
+
|
1611
|
+
commit 8bc17c29ef5024802fc7207023cdaa7f1b5eda5f
|
1612
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1613
|
+
Date: Tue Nov 8 21:21:05 2011 +0000
|
1614
|
+
|
1615
|
+
get_uri: object allocation reduction
|
1616
|
+
|
1617
|
+
Using Array#map! instead of Array#map can save us at
|
1618
|
+
least one object allocation.
|
1619
|
+
|
1620
|
+
commit 5bd27a2ff2d5b32a4d6aa3115fda63127164d1e3
|
1621
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1622
|
+
Date: Tue Nov 8 10:23:21 2011 +0000
|
1623
|
+
|
1624
|
+
test/aggregate: not all Ruby implementations support "-n" well
|
1625
|
+
|
1626
|
+
At least my year-old Rubinius installation does not
|
1627
|
+
|
1628
|
+
commit 4403d6936f72d8676f04799c419ca7f556b47bd1
|
1629
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1630
|
+
Date: Tue Nov 8 10:21:04 2011 +0000
|
1631
|
+
|
1632
|
+
test/exec: remove "uuid" gem dependency on 1.8
|
1633
|
+
|
1634
|
+
Just borrow the code from 1.9.3
|
1635
|
+
|
1636
|
+
commit 5f7f02420d2df6a29115dc9dcf31587290d0658f
|
1637
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1638
|
+
Date: Tue Nov 8 10:09:27 2011 +0000
|
1639
|
+
|
1640
|
+
copy_stream (1.8) fix close issue
|
1641
|
+
|
1642
|
+
Not sure exactly what was causing it...
|
1643
|
+
|
1644
|
+
commit 79d83988cb08ff646fcf7950c74e366ae6ebc290
|
1645
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1646
|
+
Date: Tue Nov 8 10:08:38 2011 +0000
|
1647
|
+
|
1648
|
+
bigfile: explicitly close HTTPReader socket
|
1649
|
+
|
1650
|
+
No need to unnecessarily trigger GC nor hit EMFILE/ENFILE
|
1651
|
+
on VMs that rarely GC IO objects...
|
1652
|
+
|
1653
|
+
commit 0d908e6ba1af6e0cc229dc4d66a2a0e97c07164c
|
1654
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1655
|
+
Date: Tue Nov 8 09:44:15 2011 +0000
|
1656
|
+
|
1657
|
+
http_reader: remove support for overriding http_method
|
1658
|
+
|
1659
|
+
GET is all we need and we can save some code this way.
|
1660
|
+
If we ever need to use HEAD much again, we can use
|
1661
|
+
net/http/persistent since our internal HTTP classes
|
1662
|
+
are only optimized for large responses.
|
1663
|
+
|
1664
|
+
commit 9be9c8b2ca91938025d9066ebde5c832da04f0ef
|
1665
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1666
|
+
Date: Tue Nov 8 09:40:16 2011 +0000
|
1667
|
+
|
1668
|
+
split deprecated paths_size to its own file
|
1669
|
+
|
1670
|
+
This is only needed for users on old MogileFS servers
|
1671
|
+
|
1672
|
+
commit b07078b19046b485d758ebe46eeadbecf3b61db1
|
1673
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1674
|
+
Date: Tue Nov 8 09:24:39 2011 +0000
|
1675
|
+
|
1676
|
+
http_* shorter error message for failures
|
1677
|
+
|
1678
|
+
Since we'll have multiple tries, try to limit errors.
|
1679
|
+
|
1680
|
+
commit d62ee4e837b8cbad55354ee3a9e92ee68decb90e
|
1681
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1682
|
+
Date: Tue Nov 8 09:16:58 2011 +0000
|
1683
|
+
|
1684
|
+
backend: revert 1.8 splat breakage
|
1685
|
+
|
1686
|
+
Oh well, not a big savings there anyways unlike the inner loop.
|
1687
|
+
|
1688
|
+
commit c16b4bcc3fe68de8ee3c615c5e2bfda80f900b9a
|
1689
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1690
|
+
Date: Tue Nov 8 09:11:19 2011 +0000
|
1691
|
+
|
1692
|
+
get_file_data: avoid exposing users to copy_stream invocation
|
1693
|
+
|
1694
|
+
We'll now accept an optional argument which can be passed to
|
1695
|
+
IO.copy_stream directly. This should make life easier on users
|
1696
|
+
so they won't be exposed to our internals to make efficient
|
1697
|
+
copies of large files.
|
1698
|
+
|
1699
|
+
commit 100124a50620271e9c7317c28efacdee3cc568e3
|
1700
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1701
|
+
Date: Tue Nov 8 08:50:11 2011 +0000
|
1702
|
+
|
1703
|
+
backend: small garbage reduction for url_decode
|
1704
|
+
|
1705
|
+
Obviously I could go farther, but not at the expense of
|
1706
|
+
readability. There are C libraries I could use, but MogileFS
|
1707
|
+
may move to a JSON-based protocol in the future anyways...
|
1708
|
+
|
1709
|
+
commit 9bdb7b8ca1016010277a8c5fcc96a97ee82b3558
|
1710
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1711
|
+
Date: Tue Nov 8 08:35:18 2011 +0000
|
1712
|
+
|
1713
|
+
size/list_keys improvements
|
1714
|
+
|
1715
|
+
We can use the file_info command to get things faster, now.
|
1716
|
+
|
1717
|
+
commit 145655bde64def9e6149137bbb577778f501d890
|
1718
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1719
|
+
Date: Tue Nov 8 07:55:25 2011 +0000
|
1720
|
+
|
1721
|
+
test/integration: skip dummy test with minitest
|
1722
|
+
|
1723
|
+
setup is expensive with integration test since we wait for the
|
1724
|
+
monitor
|
1725
|
+
|
1726
|
+
commit a3dcec56ef17d2c509b185d5ec97af773b508e27
|
1727
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1728
|
+
Date: Tue Nov 8 07:00:16 2011 +0000
|
1729
|
+
|
1730
|
+
tests: migrate tests for modifying classes to test_fresh
|
1731
|
+
|
1732
|
+
classids can get recycled, it seems.
|
1733
|
+
|
1734
|
+
commit efc339b43a272b92468629f7f833e1941052db2c
|
1735
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1736
|
+
Date: Tue Nov 8 05:15:10 2011 +0000
|
1737
|
+
|
1738
|
+
mog: "ls -l" shows full key name
|
1739
|
+
|
1740
|
+
commit 27afdca06806f0c77be3625055539ab3331f5b3e
|
1741
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1742
|
+
Date: Tue Nov 8 03:26:13 2011 +0000
|
1743
|
+
|
1744
|
+
Fix Ruby 1.8 compatibility
|
1745
|
+
|
1746
|
+
Our custom copy_stream needs to flush data like it does
|
1747
|
+
under 1.9. 1.8 also can't do a blocking open(2) on a FIFO
|
1748
|
+
in a native thread so we'll fork() instead.
|
1749
|
+
|
1750
|
+
commit 1a5b3487e5a38a4897a6461b3907cd6bde501e0c
|
1751
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1752
|
+
Date: Tue Nov 8 02:45:40 2011 +0000
|
1753
|
+
|
1754
|
+
add support for the file_debug command
|
1755
|
+
|
1756
|
+
This was added in MogileFS 2.45
|
1757
|
+
|
1758
|
+
commit fd5098ba0825d5ee603265a40e8c62b97191b7b6
|
1759
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1760
|
+
Date: Tue Nov 8 01:53:06 2011 +0000
|
1761
|
+
|
1762
|
+
add file_info command support and test
|
1763
|
+
|
1764
|
+
This is a command added in MogileFS 2.45
|
1765
|
+
|
1766
|
+
commit 088d88332564a5d09cf8a57695a53453ab59f686
|
1767
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1768
|
+
Date: Tue Nov 8 01:07:24 2011 +0000
|
1769
|
+
|
1770
|
+
tests: include test for opening FIFO paths
|
1771
|
+
|
1772
|
+
It's conceivable we'd need it.
|
1773
|
+
|
1774
|
+
commit e814b15f1386e2ea53bc018aaa92aecb147400ae
|
1775
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1776
|
+
Date: Tue Nov 8 00:52:30 2011 +0000
|
1777
|
+
|
1778
|
+
Disable retries when storing non-rewindable data
|
1779
|
+
|
1780
|
+
If a user tries to pipe something to us and we can't
|
1781
|
+
rewind on failure, propagate that error all the way
|
1782
|
+
up to avoid risking a corrupted upload.
|
1783
|
+
|
1784
|
+
commit 9bcff8f08dc084b880ef978c890a2706a1bbb304
|
1785
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1786
|
+
Date: Mon Nov 7 23:17:41 2011 +0000
|
1787
|
+
|
1788
|
+
http_reader: fix usage with pure sockets
|
1789
|
+
|
1790
|
+
We won't redefine the "new" singleton method since that
|
1791
|
+
conflicts with existing usage.
|
1792
|
+
|
1793
|
+
commit a603d3231683096085841ae6f0ba96eeb27171a3
|
1794
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1795
|
+
Date: Mon Nov 7 22:51:02 2011 +0000
|
1796
|
+
|
1797
|
+
avoid circular requires
|
1798
|
+
|
1799
|
+
Ruby 1.9.3 considers them harmful
|
1800
|
+
|
1801
|
+
commit fc76cbe64b3f5a3e641d32bff68af919df7b3d9e
|
1802
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1803
|
+
Date: Mon Nov 7 22:21:19 2011 +0000
|
1804
|
+
|
1805
|
+
cleanup unused variable warnings
|
1806
|
+
|
1807
|
+
commit 6aed1bd0229cf31a3aeb9c08d86ae851c8d538c6
|
1808
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1809
|
+
Date: Mon Nov 7 09:43:37 2011 +0000
|
1810
|
+
|
1811
|
+
fix return value for chunked Util::StoreContent users
|
1812
|
+
|
1813
|
+
Using unknown sizes with StoreContent is now supported
|
1814
|
+
(but you're probably better off using a pipe or just
|
1815
|
+
and object that acts like an IO)
|
1816
|
+
|
1817
|
+
commit a919e84b911511ed641b3edcf7b77687abc07f44
|
1818
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1819
|
+
Date: Mon Nov 7 09:36:59 2011 +0000
|
1820
|
+
|
1821
|
+
http_file: remove unnecessary check
|
1822
|
+
|
1823
|
+
There's only one place where we close the socket
|
1824
|
+
|
1825
|
+
commit ee85cf3816c795bf193e644f97da5274edbdf9c7
|
1826
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1827
|
+
Date: Mon Nov 7 09:33:12 2011 +0000
|
1828
|
+
|
1829
|
+
store_file works on IO#read-like methods, too
|
1830
|
+
|
1831
|
+
The readpartial is not in the Rack spec for rack.input
|
1832
|
+
objects, but something like IO#read is.
|
1833
|
+
|
1834
|
+
commit 61f9e531398aeaf617d038bea4494c143ee8b5af
|
1835
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1836
|
+
Date: Mon Nov 7 09:27:16 2011 +0000
|
1837
|
+
|
1838
|
+
flesh out pipe streaming + chunk for uploads
|
1839
|
+
|
1840
|
+
Of course the backend server needs to support chunking,
|
1841
|
+
but the latest Perlbal does.
|
1842
|
+
|
1843
|
+
commit 4f927415dc2a8e8dcaeda510d351192e3cc88747
|
1844
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1845
|
+
Date: Mon Nov 7 08:44:55 2011 +0000
|
1846
|
+
|
1847
|
+
tests: more tests for admin stuff
|
1848
|
+
|
1849
|
+
We'll need to setup a fresh MogileFS instance for some tests.
|
1850
|
+
|
1851
|
+
commit 5a4650a07f394268884a8dad58fac42f9a9288c5
|
1852
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1853
|
+
Date: Mon Nov 7 07:37:56 2011 +0000
|
1854
|
+
|
1855
|
+
tests: more + improved integration tests
|
1856
|
+
|
1857
|
+
We'll also be testing some admin commands in there.
|
1858
|
+
|
1859
|
+
commit c4e2b81f2493f0a0013ba03c11b74a61f3ca56f6
|
1860
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1861
|
+
Date: Mon Nov 7 05:32:51 2011 +0000
|
1862
|
+
|
1863
|
+
admin: allow changing replpolicy instead of just mindevcount
|
1864
|
+
|
1865
|
+
This retains backwards compatibility and users of MogileFS 2.x
|
1866
|
+
to change replpolicy along with mindevcount.
|
1867
|
+
|
1868
|
+
commit e3cbb44e8ef085421e2e001ba1382259242ce793
|
1869
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1870
|
+
Date: Sun Nov 6 08:10:36 2011 +0000
|
1871
|
+
|
1872
|
+
admin: update rdoc for deleting a domain
|
1873
|
+
|
1874
|
+
commit 60243808b59cb0bad8721a59970a46ddd74e68e0
|
1875
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1876
|
+
Date: Sun Nov 6 07:47:32 2011 +0000
|
1877
|
+
|
1878
|
+
delete returns true on success
|
1879
|
+
|
1880
|
+
Not some random hash from the parser.
|
1881
|
+
|
1882
|
+
commit bbe2702bb95a8fd11c1b8fb87f758a946876f58e
|
1883
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1884
|
+
Date: Sun Nov 6 07:46:38 2011 +0000
|
1885
|
+
|
1886
|
+
admin: get_domains includes replpolicy
|
1887
|
+
|
1888
|
+
We'll need to evaluate dropping support for older MogileFS.
|
1889
|
+
They probably didn't have replpolicy back in the day.
|
1890
|
+
|
1891
|
+
commit 347c41d307f85b1264fbf1c06fff9e5c8cb2e091
|
1892
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1893
|
+
Date: Sun Nov 6 04:39:08 2011 +0000
|
1894
|
+
|
1895
|
+
tests: integration tests for mogtool --bigfile
|
1896
|
+
|
1897
|
+
We need to test deprecated behavior to not break
|
1898
|
+
expectations for large, archived files in the future.
|
1899
|
+
|
1900
|
+
commit c66266416da2e05889ed93997f2c8a7cba216c56
|
1901
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1902
|
+
Date: Sun Nov 6 04:38:21 2011 +0000
|
1903
|
+
|
1904
|
+
bigfile: fix retry on rebalanced keys
|
1905
|
+
|
1906
|
+
commit 5f5e9071e51134b2028c1b2f99655be66debc2a4
|
1907
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1908
|
+
Date: Sun Nov 6 04:38:05 2011 +0000
|
1909
|
+
|
1910
|
+
Manifest: update
|
1911
|
+
|
1912
|
+
commit fec183631eee46ce3f00605142c6dfb122797e27
|
1913
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1914
|
+
Date: Sat Nov 5 12:33:53 2011 +0000
|
1915
|
+
|
1916
|
+
return file size properly when storing file
|
1917
|
+
|
1918
|
+
commit f54e49512910f2958141a51cb685009ed39b2906
|
1919
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1920
|
+
Date: Sat Nov 5 03:06:00 2011 +0000
|
1921
|
+
|
1922
|
+
support chunked uploads via PUT
|
1923
|
+
|
1924
|
+
This can be useful for streaming to a backend
|
1925
|
+
(this feature needs tests)
|
1926
|
+
|
1927
|
+
commit 283050fc283868f79796f05901bd9149713ae282
|
1928
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1929
|
+
Date: Sat Nov 5 02:34:35 2011 +0000
|
1930
|
+
|
1931
|
+
redo IO.copy_stream usage
|
1932
|
+
|
1933
|
+
Avoid deepening stack depth and make it easier to migrate
|
1934
|
+
fully to 1.9 in the future (dropping 1.8 support).
|
1935
|
+
|
1936
|
+
commit f057a82730d252c509f8c590430dbf4507d17601
|
1937
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1938
|
+
Date: Sat Nov 5 02:11:03 2011 +0000
|
1939
|
+
|
1940
|
+
backend: require CRLF on every line we parse
|
1941
|
+
|
1942
|
+
Otherwise IO#gets and MogileFS::Socket#timed_gets could
|
1943
|
+
return a truncated response before EOF and we would never
|
1944
|
+
know the response was truncated.
|
1945
|
+
|
1946
|
+
commit 972bad366ae58ec726329a45cbf908e16e1889df
|
1947
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1948
|
+
Date: Sat Nov 5 02:02:18 2011 +0000
|
1949
|
+
|
1950
|
+
make EmptyPathError more descriptive
|
1951
|
+
|
1952
|
+
commit d6b2624ed1f4502d499dad93ee44a716b5c56f08
|
1953
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1954
|
+
Date: Sat Nov 5 01:59:27 2011 +0000
|
1955
|
+
|
1956
|
+
rename httpfile => http_file
|
1957
|
+
|
1958
|
+
Should be easier to read this way
|
1959
|
+
|
1960
|
+
commit 37c6ee5d64d2cbdc739b4f4afcf55b3762234392
|
1961
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1962
|
+
Date: Sat Nov 5 01:54:14 2011 +0000
|
1963
|
+
|
1964
|
+
refactor httpfile and remove layering violation
|
1965
|
+
|
1966
|
+
Splitting calls to backend.create_open + create_close between
|
1967
|
+
files is also extremely confusing and error-prone.
|
1968
|
+
|
1969
|
+
Hopefully nobody actually depends on some attributes
|
1970
|
+
we've removed.
|
1971
|
+
|
1972
|
+
commit 8fefb8c07fdb69eb80c5aefbb0cdd74388cf908f
|
1973
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1974
|
+
Date: Fri Nov 4 23:50:17 2011 +0000
|
1975
|
+
|
1976
|
+
new HTTPReader implementation replaces the http_read_sock method
|
1977
|
+
|
1978
|
+
This is cleaner and replaces redundant code where we would retry
|
1979
|
+
paths. MogileFS::MogileFS#size now raises on error instead of
|
1980
|
+
returning nil.
|
1981
|
+
|
1982
|
+
commit afe10667b8deeb60e3f70d2ddc7a20ae7e0bc072
|
1983
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1984
|
+
Date: Fri Nov 4 02:15:15 2011 +0000
|
1985
|
+
|
1986
|
+
remove the network module
|
1987
|
+
|
1988
|
+
It's only used internally by the deprecated bigfile
|
1989
|
+
implementation, and we don't even need it for that.
|
1990
|
+
|
1991
|
+
commit 8a6680f0209bce12d56ae2ee2613448783f3d55a
|
1992
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
1993
|
+
Date: Thu Nov 3 00:18:38 2011 +0000
|
1994
|
+
|
1995
|
+
doc: tag files containing internal implementation details
|
1996
|
+
|
1997
|
+
We don't want our users to rely on them
|
1998
|
+
|
1999
|
+
commit 1c78c6d067b27ccd763bd2732f57771261e047f3
|
2000
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2001
|
+
Date: Thu Nov 3 00:06:08 2011 +0000
|
2002
|
+
|
2003
|
+
bigfile: documentation update
|
2004
|
+
|
2005
|
+
commit 7f8687c9496317a5ffd0da9f4489d59ff8376899
|
2006
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2007
|
+
Date: Wed Nov 2 23:21:54 2011 +0000
|
2008
|
+
|
2009
|
+
util: remove Socket.mogilefs_init method
|
2010
|
+
|
2011
|
+
It's no longer used anywhere
|
2012
|
+
|
2013
|
+
commit 93242dbc664409e8bd78f021ba7b527f340fa1d7
|
2014
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2015
|
+
Date: Wed Nov 2 23:20:58 2011 +0000
|
2016
|
+
|
2017
|
+
remove sysrwloop for copy_stream
|
2018
|
+
|
2019
|
+
We're trying to use as much as we can from Ruby 1.9
|
2020
|
+
|
2021
|
+
commit c5bb0bffe17e7fa924fcca2f5dc85271ac466cea
|
2022
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2023
|
+
Date: Wed Nov 2 23:20:38 2011 +0000
|
2024
|
+
|
2025
|
+
test/kgio: disable of MOGILEFS_CLIENT_PURE is set
|
2026
|
+
|
2027
|
+
commit 77b927de0c7c0f0e5e96691f2c9099e307c3e1f3
|
2028
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2029
|
+
Date: Wed Nov 2 23:00:28 2011 +0000
|
2030
|
+
|
2031
|
+
mog: remove sysrwloop dependency for "tee"
|
2032
|
+
|
2033
|
+
We can do this in a way that's compatible with IO.copy_stream
|
2034
|
+
|
2035
|
+
commit 100fcbe4b368cd6510e65af5b773ab9d70ef42d6
|
2036
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2037
|
+
Date: Wed Nov 2 22:59:12 2011 +0000
|
2038
|
+
|
2039
|
+
mogilefs: don't pass class argument if it's "default"
|
2040
|
+
|
2041
|
+
mogilefsd may not like that
|
2042
|
+
|
2043
|
+
commit 443d7bdf4c1fb3b950cd05ffb475aef12d50c4b6
|
2044
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2045
|
+
Date: Wed Nov 2 22:33:01 2011 +0000
|
2046
|
+
|
2047
|
+
bigfile: make parse_info public and require arg
|
2048
|
+
|
2049
|
+
commit 909a2ae12d11593d59fccf30b7c2143cc9f441ab
|
2050
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2051
|
+
Date: Wed Nov 2 20:36:47 2011 +0000
|
2052
|
+
|
2053
|
+
bigfile: better factor this for use with IO.copy_stream
|
2054
|
+
|
2055
|
+
syswrloop and it's filter arg is going away, but we're
|
2056
|
+
stuck supporting bigfiles in read-only mode for eternity.
|
2057
|
+
|
2058
|
+
commit 46355ddfecb4e210b4dd3b6f91dde330e8d509ff
|
2059
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2060
|
+
Date: Wed Nov 2 02:40:03 2011 +0000
|
2061
|
+
|
2062
|
+
remove the rest of the Socket monkeypatches
|
2063
|
+
|
2064
|
+
No more mucking with existing Ruby classes \o/
|
2065
|
+
|
2066
|
+
commit af2d9c971cee5a6896fa3da44adff72d5f2ae44a
|
2067
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2068
|
+
Date: Wed Nov 2 02:14:46 2011 +0000
|
2069
|
+
|
2070
|
+
util: remove syswrite_full method
|
2071
|
+
|
2072
|
+
It's no longer used
|
2073
|
+
|
2074
|
+
commit 4b8cc437c502e5fda86ac5935baf69ec5a585e74
|
2075
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2076
|
+
Date: Wed Nov 2 02:06:19 2011 +0000
|
2077
|
+
|
2078
|
+
make http_read_sock and friends use new socket API
|
2079
|
+
|
2080
|
+
This will need further refactoring
|
2081
|
+
|
2082
|
+
commit ec29cbf28b2fa3a0155462f8ee927265f9fc3d94
|
2083
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2084
|
+
Date: Tue Nov 1 23:38:31 2011 +0000
|
2085
|
+
|
2086
|
+
use IO.copy_stream if available for making uploads with HTTPFile
|
2087
|
+
|
2088
|
+
commit 60a29ca15a1d90cb7ef011719111e3d6d5691614
|
2089
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2090
|
+
Date: Tue Nov 1 23:30:41 2011 +0000
|
2091
|
+
|
2092
|
+
httpfile: remove silly syswrite_full usage
|
2093
|
+
|
2094
|
+
Since Sockets default to IO#sync=true, IO#write is
|
2095
|
+
just like syswrite_full and there's no reason to
|
2096
|
+
continue using it.
|
2097
|
+
|
2098
|
+
commit 0bffe57f784b40dc355c2eca82d1d7a8cab09093
|
2099
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2100
|
+
Date: Tue Nov 1 20:08:25 2011 +0000
|
2101
|
+
|
2102
|
+
backend: rely on Array#shuffle instead sort_by { rand }
|
2103
|
+
|
2104
|
+
This is easier-to-read and more correct. This is not available
|
2105
|
+
in 1.8.6, but we already broke 1.8.6 compatibility with
|
2106
|
+
String#bytesize.
|
2107
|
+
|
2108
|
+
commit 6897db699255ce1fbd31ffb304db357351f5509a
|
2109
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2110
|
+
Date: Mon Oct 31 23:45:25 2011 +0000
|
2111
|
+
|
2112
|
+
wire up new socket class to backend
|
2113
|
+
|
2114
|
+
This should allow us to swap in kgio more easily.
|
2115
|
+
|
2116
|
+
commit 7b50489a1bca82ccb0b2e374f3d4f95bb651be5a
|
2117
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2118
|
+
Date: Fri Oct 21 08:03:58 2011 +0000
|
2119
|
+
|
2120
|
+
introduce MogileFS::Socket class
|
2121
|
+
|
2122
|
+
More work towards _not_ monkey-patching core classes.
|
2123
|
+
|
2124
|
+
commit d367d4c5645c946505d39c57b4f619a5c3123a10
|
2125
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2126
|
+
Date: Sat Oct 22 02:47:43 2011 +0000
|
2127
|
+
|
2128
|
+
test_backend: remove TempServer usage
|
2129
|
+
|
2130
|
+
This needs to be less implementation detail-oriented
|
2131
|
+
|
2132
|
+
commit c35ea4f30221e18fa5d504a444a40f611e21c291
|
2133
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2134
|
+
Date: Sat Oct 22 01:41:09 2011 +0000
|
2135
|
+
|
2136
|
+
httpfile: remove comment to NFSFile
|
2137
|
+
|
2138
|
+
NFS support is gone
|
2139
|
+
|
2140
|
+
commit 095967f8a960ec1720ea6aaa2dbed1063ba74ba8
|
2141
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2142
|
+
Date: Sat Oct 22 01:39:43 2011 +0000
|
2143
|
+
|
2144
|
+
README.txt: shorten bogomips.org URLs
|
2145
|
+
|
2146
|
+
bogomips.org went on a URL diet earlier this year.
|
2147
|
+
|
2148
|
+
commit 582463d9826b8b07d01846d8fdcf2beba45df1f9
|
2149
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2150
|
+
Date: Thu Oct 20 09:16:51 2011 +0000
|
2151
|
+
|
2152
|
+
util: small ivar reduction
|
2153
|
+
|
2154
|
+
commit 0d7f4e94223bb7413b98f39ac03ddc2970f2bbb3
|
2155
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2156
|
+
Date: Thu Oct 20 09:03:23 2011 +0000
|
2157
|
+
|
2158
|
+
remove Socket#mogilefs_peername
|
2159
|
+
|
2160
|
+
One tiny step in removing core class changes.
|
2161
|
+
|
2162
|
+
commit bd4e832d294635594c2af4da7a6b05fb884b2ce2
|
2163
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2164
|
+
Date: Thu Oct 20 06:35:38 2011 +0000
|
2165
|
+
|
2166
|
+
tests: do not assume "." is in $LOAD_PATH anymore
|
2167
|
+
|
2168
|
+
Ruby 1.9.2+ removes "." from $LOAD_PATH
|
2169
|
+
|
2170
|
+
commit 7e72f6a063703ff065588fa869c3dbad29829e56
|
2171
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2172
|
+
Date: Wed Jan 12 18:08:18 2011 -0800
|
2173
|
+
|
2174
|
+
mogilefs-client 2.2.0
|
2175
|
+
|
2176
|
+
= 2.2.0
|
2177
|
+
* internal cleanups (no public API breakage)
|
2178
|
+
* refactor backend socket/connection handling for reliability
|
2179
|
+
|
2180
|
+
There'll probably be more aggressive cleanups/refactoring in
|
2181
|
+
future releases if I have time.
|
2182
|
+
|
2183
|
+
commit 60c22ca86f8fcea8b51c90d5cb759cc2f29cac59
|
2184
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2185
|
+
Date: Wed Jan 12 17:49:32 2011 -0800
|
2186
|
+
|
2187
|
+
refactor backend socket/connection handling
|
2188
|
+
|
2189
|
+
We now take steps to ensure the socket we wrote to is always the same as
|
2190
|
+
the socket we'll read from. And if a read ever fails we'll close the
|
2191
|
+
socket to avoid having responses. We've also switched from Socket#send
|
2192
|
+
to IO#write as IO#write guarantees write-in-full behavior as long as the
|
2193
|
+
socket is alive (MogileFS queries are small)
|
2194
|
+
|
2195
|
+
The public MogileFS::Backend#shutdown method is now thread-safe,
|
2196
|
+
too.
|
2197
|
+
|
2198
|
+
commit 79718dd2b5d7fa05974388d409dec44a298ebefe
|
2199
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2200
|
+
Date: Fri Feb 19 15:50:19 2010 -0800
|
2201
|
+
|
2202
|
+
bump VERSION to 3.0.0pre
|
2203
|
+
|
2204
|
+
The 3.x.x series will probably be incompatible with 2.x.x...
|
2205
|
+
|
2206
|
+
commit 3f714b9b60879e4e8ce9ed43c62ea9339a09ffe5
|
2207
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2208
|
+
Date: Fri Feb 19 15:47:40 2010 -0800
|
2209
|
+
|
2210
|
+
remove support for TCP_CORK
|
2211
|
+
|
2212
|
+
It's needless optimization on a LAN (most places where MogileFS
|
2213
|
+
is deployed) and the extra method calls in Ruby seem to force
|
2214
|
+
more overhead in to the application. So stop doing it.
|
2215
|
+
|
2216
|
+
commit da9f66a8c1cd76de75bf35a441d27492a29a9bf2
|
2217
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2218
|
+
Date: Fri Feb 19 15:45:46 2010 -0800
|
2219
|
+
|
2220
|
+
avoid unnecessary IO#sync = true
|
2221
|
+
|
2222
|
+
Sockets have sync=true by default, and there's no need for it
|
2223
|
+
when reading files
|
2224
|
+
|
2225
|
+
commit 5a9a0fb45eb191262b4b09975ebf502438272b27
|
2226
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2227
|
+
Date: Fri Nov 20 14:38:33 2009 -0800
|
2228
|
+
|
2229
|
+
set encoding: binary for all files
|
2230
|
+
|
2231
|
+
We won't trust Ruby 1.9 String weirdness since data storage
|
2232
|
+
is locale-agnostic
|
2233
|
+
|
2234
|
+
commit b34465591ba83034985dc4be5fa3516ae059f408
|
2235
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2236
|
+
Date: Fri Jun 26 11:40:37 2009 -0700
|
2237
|
+
|
2238
|
+
backend: cleaner newline handling of error strings
|
2239
|
+
|
2240
|
+
IO#gets respects "$/" which may be altered outside of our
|
2241
|
+
control. So force gets to use "\n" which will also match "\r\n"
|
2242
|
+
(in case the mogilefs protocol changes subtly in the future).
|
2243
|
+
There's also no point in exposing the trailing "\r\n" from the
|
2244
|
+
network protocol to our users.
|
2245
|
+
|
2246
|
+
commit 19ba6f2602ffc5e54fc91e22d28f6231290c15bc
|
2247
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2248
|
+
Date: Fri Jun 26 11:12:14 2009 -0700
|
2249
|
+
|
2250
|
+
GNUmakefile: spaces for decls to avoid confusing make
|
2251
|
+
|
2252
|
+
Otherwise it could be confused as belonging to the
|
2253
|
+
task defined above the declarations.
|
2254
|
+
|
2255
|
+
commit 3299ed2412a2b27d88e04ce7c40416371507f8ec
|
2256
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2257
|
+
Date: Sat Apr 11 19:54:47 2009 -0700
|
2258
|
+
|
2259
|
+
mogilefs-client 2.1.0
|
2260
|
+
|
2261
|
+
commit 127799e5ba632d2d4cc0ac4c1a48cdf0143eb75f
|
2262
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2263
|
+
Date: Sat Apr 11 19:52:36 2009 -0700
|
2264
|
+
|
2265
|
+
GNUmakefile: better logging/output control
|
2266
|
+
|
2267
|
+
Running "make V=1" displays test results verbosely.
|
2268
|
+
|
2269
|
+
commit ba24d98b90b17ca59e9d274b7f5925e237418b4a
|
2270
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2271
|
+
Date: Fri Apr 10 18:09:43 2009 -0700
|
2272
|
+
|
2273
|
+
Ensure store_{content,file} always returns size
|
2274
|
+
|
2275
|
+
It's useful to know the size of the file we're storing.
|
2276
|
+
|
2277
|
+
commit 33ce9880cff9eaf8b7ad7558357cd0fcaed8144a
|
2278
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2279
|
+
Date: Wed Apr 1 16:03:39 2009 -0700
|
2280
|
+
|
2281
|
+
mog: small cleanup
|
2282
|
+
|
2283
|
+
Tempfiles already have their own finalizer and we
|
2284
|
+
ensure they're closed, too.
|
2285
|
+
|
2286
|
+
commit 539f39680436dfebe6de9e5c8b905428af438468
|
2287
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2288
|
+
Date: Fri Mar 27 14:18:53 2009 -0700
|
2289
|
+
|
2290
|
+
mysql: filter out URLs for down/dead hosts/devices
|
2291
|
+
|
2292
|
+
Clients won't be able to make use of them if they're down or
|
2293
|
+
dead. We trust the MogileFS metadata in MySQL to be synced
|
2294
|
+
correctly with the actual device/host states.
|
2295
|
+
|
2296
|
+
commit 4610f9a59b22993785689f292ab23d309a5ce048
|
2297
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2298
|
+
Date: Wed Mar 25 00:27:24 2009 -0700
|
2299
|
+
|
2300
|
+
README: add links to the repo.or.cz mirror
|
2301
|
+
|
2302
|
+
These have been mirrored to there forever, but
|
2303
|
+
never got linked correctly.
|
2304
|
+
|
2305
|
+
commit 20963ad8c801701208f2496ba62fd4c57bcc97e0
|
2306
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2307
|
+
Date: Tue Mar 24 23:07:51 2009 -0700
|
2308
|
+
|
2309
|
+
verify_uris: use write_nonblock instead of syswrite
|
2310
|
+
|
2311
|
+
This really shouldn't make a difference since the smallest
|
2312
|
+
buffer size for a socket I've seen is 4096 and MogileFS
|
2313
|
+
URIs cannot get that long.
|
2314
|
+
|
2315
|
+
commit 40e82ab559dee657a5884c77a46e85613856c9d8
|
2316
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2317
|
+
Date: Tue Mar 24 23:02:14 2009 -0700
|
2318
|
+
|
2319
|
+
Add get_uris API method
|
2320
|
+
|
2321
|
+
This is just like get_paths, but integrates better into Ruby
|
2322
|
+
applications that use the parsed-out URI to do operations
|
2323
|
+
directly on the URIs.
|
2324
|
+
|
2325
|
+
commit 65f9a224dfda3ac8b0ee9290b456d23ece32a053
|
2326
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2327
|
+
Date: Tue Mar 24 22:34:14 2009 -0700
|
2328
|
+
|
2329
|
+
Extra checking for full_timeout in sysread_full
|
2330
|
+
|
2331
|
+
full_timeout could be set if timeout is set. Don't
|
2332
|
+
croak on a NilClass error if we screw it up. Also,
|
2333
|
+
correctly detect readiness when checking the return
|
2334
|
+
value of IO.select.
|
2335
|
+
|
2336
|
+
commit 76076d42db5cf16317823131f47570c8f80e22a1
|
2337
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2338
|
+
Date: Tue Mar 24 22:16:07 2009 -0700
|
2339
|
+
|
2340
|
+
README: add a note about emailing me
|
2341
|
+
|
2342
|
+
Yes, I'm a doof when it comes to using web pages.
|
2343
|
+
|
2344
|
+
commit fdd00effb846e77807751562c11d78b4240dd93d
|
2345
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2346
|
+
Date: Tue Mar 24 22:09:08 2009 -0700
|
2347
|
+
|
2348
|
+
Really remove all NFS support
|
2349
|
+
|
2350
|
+
This cleans up some of the internal HTTP handling code a bit,
|
2351
|
+
too; and does a better job of closing sockets than it did
|
2352
|
+
previously.
|
2353
|
+
|
2354
|
+
commit f0ed5cb6ec6851a367175a93398e813e2d62667f
|
2355
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2356
|
+
Date: Tue Mar 24 20:16:37 2009 -0700
|
2357
|
+
|
2358
|
+
Compact get_paths output so we don't have nils
|
2359
|
+
|
2360
|
+
I'm not sure if mogilefsd ever returned broken output for this,
|
2361
|
+
but just in case we compact the output so users don't have to
|
2362
|
+
worry about them.
|
2363
|
+
|
2364
|
+
commit b7880146d13c8ed837ffa92102f1a907dd0d21ee
|
2365
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2366
|
+
Date: Tue Mar 24 20:08:08 2009 -0700
|
2367
|
+
|
2368
|
+
Close socket we create before raising exceptions
|
2369
|
+
|
2370
|
+
This can potentially fix some file descriptor leaks (but there
|
2371
|
+
may not be any leaks because of GC which can mysteriously close
|
2372
|
+
file descriptors as I've discovered).
|
2373
|
+
|
2374
|
+
Better safe than sorry...
|
2375
|
+
|
2376
|
+
commit 9ae7c33f4465d3d44b5ae31d9f454f89e5748fb3
|
2377
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2378
|
+
Date: Tue Mar 24 19:43:48 2009 -0700
|
2379
|
+
|
2380
|
+
Unify internal HTTP GET/HEAD methods
|
2381
|
+
|
2382
|
+
This takes advantage of the (ugly) new mogilefs_size Socket
|
2383
|
+
attribute to avoid duplicating Content-Length parsing code.
|
2384
|
+
|
2385
|
+
I really wish Net::HTTP in Ruby was actually usable...
|
2386
|
+
|
2387
|
+
commit c07be896889f13235bda1bd32983261e73513a70
|
2388
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2389
|
+
Date: Tue Mar 24 18:56:50 2009 -0700
|
2390
|
+
|
2391
|
+
Respect timeout when doing get_file_data
|
2392
|
+
|
2393
|
+
This adds a sysread_full utility method with configurable
|
2394
|
+
timeouts. Individual reads can be timed out as well as
|
2395
|
+
the entire sysread_full call.
|
2396
|
+
|
2397
|
+
commit a69925d4b4671fe65e54e34a009e17fb1fa47700
|
2398
|
+
Author: godfat <godfat@godfat.org>
|
2399
|
+
Date: Wed Mar 11 16:19:43 2009 +0800
|
2400
|
+
|
2401
|
+
call IO.select([sock]) if sock is not ready.
|
2402
|
+
|
2403
|
+
commit cb0eb2a46cae96a602d0c78033a3e1154e165986
|
2404
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2405
|
+
Date: Tue Mar 24 17:14:18 2009 -0700
|
2406
|
+
|
2407
|
+
MySQL interface returns integer length and devcount
|
2408
|
+
|
2409
|
+
This is an API change.
|
2410
|
+
|
2411
|
+
Additionally ensure the normal MogileFS::MogileFS API
|
2412
|
+
doesn't break here.
|
2413
|
+
|
2414
|
+
commit b9722d72614a0198b7db6257981d71b9d62b43f4
|
2415
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2416
|
+
Date: Wed Mar 18 03:40:17 2009 -0700
|
2417
|
+
|
2418
|
+
test_mogilefs: fix race conditions
|
2419
|
+
|
2420
|
+
commit 878e3c83595c1ad44e648904987c4d917baa06b2
|
2421
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2422
|
+
Date: Wed Mar 18 03:39:35 2009 -0700
|
2423
|
+
|
2424
|
+
tests: retry random ports correctly
|
2425
|
+
|
2426
|
+
Oops
|
2427
|
+
|
2428
|
+
commit 1959ed17631f7a2b044f609ba147845cdf1307bb
|
2429
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2430
|
+
Date: Mon Mar 2 13:54:52 2009 -0800
|
2431
|
+
|
2432
|
+
mogilefs-client 2.0.2
|
2433
|
+
|
2434
|
+
commit 41d028768fbeb49a31542cb0eaa6ec396d3baf5a
|
2435
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2436
|
+
Date: Mon Mar 2 13:28:31 2009 -0800
|
2437
|
+
|
2438
|
+
Tasks to enforce permissions are set correctly
|
2439
|
+
|
2440
|
+
commit 72ed3d1243037d5c625be6b23fb0098250f5f6dd
|
2441
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2442
|
+
Date: Thu Feb 26 14:21:14 2009 -0800
|
2443
|
+
|
2444
|
+
Update Manifest.txt with setup.rb
|
2445
|
+
|
2446
|
+
commit 918d58b902614ad2c6eede674382e25557276481
|
2447
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2448
|
+
Date: Thu Feb 26 14:14:40 2009 -0800
|
2449
|
+
|
2450
|
+
backend: don't blindly add "Error" to exception class names
|
2451
|
+
|
2452
|
+
We were getting classes with "SizeVerifyErrorError", which
|
2453
|
+
just looks stupid. This was because MogileFS puts
|
2454
|
+
the "_error" suffix into error messages it sends us and
|
2455
|
+
we were blindly appending Error to the end. Avoid doing
|
2456
|
+
that, even if it's somewhat inconsistent since "ErrorError"
|
2457
|
+
looks really stupid IMNSHO...
|
2458
|
+
|
2459
|
+
Note: this is a minor API change
|
2460
|
+
|
2461
|
+
commit d6eff4e796bbb2c135f6e15d7c8580e16c6cbb5f
|
2462
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2463
|
+
Date: Thu Feb 26 13:55:56 2009 -0800
|
2464
|
+
|
2465
|
+
backend: raise exceptions with the error message
|
2466
|
+
|
2467
|
+
Getting to lasterrstr from several levels up the stack is
|
2468
|
+
annoying otherwise...
|
2469
|
+
|
2470
|
+
commit bc7e7cd06f1e2b4eacbf5b7595af6938c2332adc
|
2471
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2472
|
+
Date: Wed Feb 25 00:22:48 2009 -0800
|
2473
|
+
|
2474
|
+
README.txt: update documentation URL
|
2475
|
+
|
2476
|
+
The old one has become invalid.
|
2477
|
+
|
2478
|
+
commit cfdf498adee9ec21420728abd59ce01c181b0d5f
|
2479
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2480
|
+
Date: Wed Feb 25 00:10:33 2009 -0800
|
2481
|
+
|
2482
|
+
mogilefs-client 2.0.1
|
2483
|
+
|
2484
|
+
commit 8d6ced74c2538cfa3836ec14668abf02e712507e
|
2485
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2486
|
+
Date: Tue Feb 24 23:42:14 2009 -0800
|
2487
|
+
|
2488
|
+
network: make verify_uris method more robust
|
2489
|
+
|
2490
|
+
IO.select can raise errors (IOError most notably) on bad
|
2491
|
+
descriptors. Ensure we can detect and delete them from our
|
2492
|
+
waiting sets if IO.select raises something.
|
2493
|
+
|
2494
|
+
commit 6cf59a3231bd53a1bfe91df31e900e4349a4746e
|
2495
|
+
Author: Jacob Burkhart <jacob@brontes3d.com>
|
2496
|
+
Date: Mon Feb 23 13:01:55 2009 -0500
|
2497
|
+
|
2498
|
+
Allow 'store_content' to be used with a streamable object
|
2499
|
+
|
2500
|
+
New way to call 'store_content' with a
|
2501
|
+
MogileFS::Util::StoreContent allows you to roll your own method
|
2502
|
+
of streaming data to mogile on an upload (instead of using a
|
2503
|
+
string or file)
|
2504
|
+
|
2505
|
+
[ew: this still requires a known content length beforehand]
|
2506
|
+
[ew: applied with --whitespace=strip, rewritten subject,
|
2507
|
+
80-column wrapping]
|
2508
|
+
|
2509
|
+
Signed-off-by: Eric Wong <normalperson@yhbt.net>
|
2510
|
+
|
2511
|
+
commit aaf794c5455b17ab8f0a15ccd81f7496bcc0b8d5
|
2512
|
+
Author: Jacob Burkhart <jacob@brontes3d.com>
|
2513
|
+
Date: Mon Feb 23 12:22:00 2009 -0500
|
2514
|
+
|
2515
|
+
fix tests
|
2516
|
+
|
2517
|
+
Signed-off-by: Eric Wong <normalperson@yhbt.net>
|
2518
|
+
|
2519
|
+
commit d49d49152ddace8258b9aeb3930e209edb3cef68
|
2520
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2521
|
+
Date: Mon Feb 23 11:49:08 2009 -0800
|
2522
|
+
|
2523
|
+
Add setup.rb
|
2524
|
+
|
2525
|
+
I'm tired of the overhead of loading rubygems
|
2526
|
+
|
2527
|
+
commit ee21c71551d220a0fc89111dbd5b13a71d54ff3f
|
2528
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2529
|
+
Date: Sat Feb 7 20:18:31 2009 -0800
|
2530
|
+
|
2531
|
+
test: workaround some concurrency issues in tests
|
2532
|
+
|
2533
|
+
At least processes are easier to debug than threads...
|
2534
|
+
|
2535
|
+
commit 6f103af69968237f1dbd33fac40975dd4db8c701
|
2536
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2537
|
+
Date: Sat Feb 7 19:52:11 2009 -0800
|
2538
|
+
|
2539
|
+
backend: Allow TEST_DEAD_PORT to be set
|
2540
|
+
|
2541
|
+
When running tests in parallel, releasing a listener when
|
2542
|
+
killing the process that owns it can cause another test to grab
|
2543
|
+
it. Allow setting TEST_DEAD_PORT in env to avoid this race
|
2544
|
+
condition.
|
2545
|
+
|
2546
|
+
commit 75115f3296d31e5e9f10645f216d3d7c1e9024d1
|
2547
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2548
|
+
Date: Sat Feb 7 18:56:14 2009 -0800
|
2549
|
+
|
2550
|
+
test_util: cleanup forked servers
|
2551
|
+
|
2552
|
+
Not sure why the atexit statement doesn't kick in in test/setup;
|
2553
|
+
but I'm too lazy to look into it at the moment. Also remove a
|
2554
|
+
"require 'tempfile'" while we're at it.
|
2555
|
+
|
2556
|
+
commit b384c7dc1f0ce052f518fe1b94a4bf5588328359
|
2557
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2558
|
+
Date: Sat Feb 7 18:50:47 2009 -0800
|
2559
|
+
|
2560
|
+
Rewrite tests to not use threads (1.9)
|
2561
|
+
|
2562
|
+
Kernel threads in 1.9 are excruciatingly painful to debug
|
2563
|
+
(much more so than userspace threads in 1.8). I'm not in
|
2564
|
+
a masochistic days...
|
2565
|
+
|
2566
|
+
commit cdc5fc07a34bd17f2162dcb171928f49af55ead7
|
2567
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2568
|
+
Date: Sat Feb 7 17:22:19 2009 -0800
|
2569
|
+
|
2570
|
+
Force binary encoding on all objects
|
2571
|
+
|
2572
|
+
File and StringIO objects need to be opened in binary mode,
|
2573
|
+
otherwise they take the default encoding format. Thankfully,
|
2574
|
+
Sockets and Tempfile objects seem to be binary by default as of
|
2575
|
+
1.9.1; but it really is a mess to have to deal with FS
|
2576
|
+
abstractions that try to deal with encoding crap behind your
|
2577
|
+
back...
|
2578
|
+
|
2579
|
+
commit ffc4ec4baaae5020c98dc545c6c6ade0336a3311
|
2580
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2581
|
+
Date: Sat Feb 7 16:38:41 2009 -0800
|
2582
|
+
|
2583
|
+
test_backend: 1.9 compatibility fixes
|
2584
|
+
|
2585
|
+
Not sure how hosts was ever allowed to be a String, but sort_by
|
2586
|
+
does not work on Strings in 1.9 so this was a bug before, too.
|
2587
|
+
Also I'm not sure how the accept_nr variable gets shared between
|
2588
|
+
threads; better just to use sockets for here...
|
2589
|
+
|
2590
|
+
commit fb8874fbf719264064bf9761476de4c16d7f8c89
|
2591
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2592
|
+
Date: Sat Feb 7 16:36:28 2009 -0800
|
2593
|
+
|
2594
|
+
backend: Ruby 1.9-compatible url_escape
|
2595
|
+
|
2596
|
+
Use String#ord instead of String#[] when it is available.
|
2597
|
+
|
2598
|
+
commit db52b53fad2f6ef88cc6105d7b1280a4f4293edf
|
2599
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2600
|
+
Date: Sat Feb 7 12:17:13 2009 -0800
|
2601
|
+
|
2602
|
+
test/setup: don't blindly undefine default_test
|
2603
|
+
|
2604
|
+
the "default_test" method may not exist in the version
|
2605
|
+
of Ruby we're using (1.9.1p0)
|
2606
|
+
|
2607
|
+
commit 78f7849963ca41d315e029a895b8b919e4981b1b
|
2608
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2609
|
+
Date: Sat Feb 7 12:13:22 2009 -0800
|
2610
|
+
|
2611
|
+
MogileFS::Pool#use always returns nil
|
2612
|
+
|
2613
|
+
We don't want to return the used object back to the caller.
|
2614
|
+
Noticed during 1.9.1 compatibility testing.
|
2615
|
+
|
2616
|
+
commit 7b1e64a80c7554ad30f68e977993742a8d14350d
|
2617
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2618
|
+
Date: Mon Feb 2 20:23:02 2009 -0800
|
2619
|
+
|
2620
|
+
mogilefs-client 2.0.0
|
2621
|
+
|
2622
|
+
commit 72bf21fe39651881d06c77042e299a0aaaeb4bba
|
2623
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2624
|
+
Date: Mon Feb 2 17:05:39 2009 -0800
|
2625
|
+
|
2626
|
+
backend: cleanup and simplify slightly
|
2627
|
+
|
2628
|
+
Again, eliminate unnecessary return statements and
|
2629
|
+
simplify hash generation.
|
2630
|
+
|
2631
|
+
commit a24cd5c8e29161c5dbf707f65ec0d64b2a75dc1b
|
2632
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2633
|
+
Date: Wed Jan 28 16:02:26 2009 -0800
|
2634
|
+
|
2635
|
+
MogileFS::Mysql: refresh devices/domains on cache miss
|
2636
|
+
|
2637
|
+
Domains and devices may be added/changed at any time,
|
2638
|
+
so there's a risk of cache misses in case something
|
2639
|
+
got added before our cache refresh interval. Always
|
2640
|
+
retry if we have a cache miss.
|
2641
|
+
|
2642
|
+
commit e482442c5c46ab67d5db5206e8dea66d2e5c4dc9
|
2643
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2644
|
+
Date: Fri Jan 23 19:25:56 2009 -0800
|
2645
|
+
|
2646
|
+
GNUmakefile: add flog/flay targets
|
2647
|
+
|
2648
|
+
Some static code analysis tools by Seattle.rb folks
|
2649
|
+
|
2650
|
+
I'm avoiding sticking these tasks in the Rakefile since they're
|
2651
|
+
too slow (and I like GNU Make more than I like Ruby *g*)
|
2652
|
+
|
2653
|
+
commit 929184e57d73ba29b6a97c52c22e3281a0810d2f
|
2654
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2655
|
+
Date: Fri Jan 23 18:45:39 2009 -0800
|
2656
|
+
|
2657
|
+
Remove unnecessary statements and temp variables
|
2658
|
+
|
2659
|
+
Last I checked, the trailing "return" is not optimized away by
|
2660
|
+
MRI 1.8. Additionally, remove some useless temporary variables.
|
2661
|
+
|
2662
|
+
commit 69dd8a992379439f20e1aa0ab564f18285b3a515
|
2663
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2664
|
+
Date: Fri Jan 23 18:24:02 2009 -0800
|
2665
|
+
|
2666
|
+
documentation updates
|
2667
|
+
|
2668
|
+
commit b4ca5228ec024bdcbb98fcdb883738941fe0d1fd
|
2669
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2670
|
+
Date: Fri Jan 23 17:44:26 2009 -0800
|
2671
|
+
|
2672
|
+
allow using the default class to store files
|
2673
|
+
|
2674
|
+
Don't specify an empty class (e.g. "class="), instead
|
2675
|
+
just omit the parameter entirely if it is nil.
|
2676
|
+
|
2677
|
+
commit b294f73c1686be08b9a2509c74ad4fc28151050a
|
2678
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2679
|
+
Date: Tue Jan 6 02:48:47 2009 -0800
|
2680
|
+
|
2681
|
+
Enable test for db_backend
|
2682
|
+
|
2683
|
+
Due to the unfortunate name, it never got run.
|
2684
|
+
Oops!
|
2685
|
+
|
2686
|
+
commit 6d7fc201b307aca412a7a6129d5f2583cfdfade5
|
2687
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2688
|
+
Date: Tue Jan 6 02:36:01 2009 -0800
|
2689
|
+
|
2690
|
+
Manifest: add test/test_util.rb
|
2691
|
+
|
2692
|
+
commit d3f4b01e9b15dc8f7dd71973d07380b98caa6d2e
|
2693
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2694
|
+
Date: Tue Jan 6 02:32:23 2009 -0800
|
2695
|
+
|
2696
|
+
test_backend: shorten timeout test
|
2697
|
+
|
2698
|
+
Since the test server sleeps forever, there's no harm in having
|
2699
|
+
a shorter timeout so our tests run faster (over twice as fast
|
2700
|
+
with `make -j').
|
2701
|
+
|
2702
|
+
commit 805d5cc33362cf92196b4ec1edf33b01b5c02746
|
2703
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2704
|
+
Date: Tue Jan 6 02:30:56 2009 -0800
|
2705
|
+
|
2706
|
+
test_backend: race condition caused occasional test failures
|
2707
|
+
|
2708
|
+
Oops, there may be more of these...
|
2709
|
+
|
2710
|
+
commit db750a6eeff7010cedb31c99f8aeeb439541c9ef
|
2711
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2712
|
+
Date: Tue Jan 6 02:05:58 2009 -0800
|
2713
|
+
|
2714
|
+
syswrite_full: allow an optional timeout to be specified
|
2715
|
+
|
2716
|
+
This makes it easier to use when making requests.
|
2717
|
+
|
2718
|
+
commit e18ff3c8c759c88aca53163e2f5b15c5436280ec
|
2719
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2720
|
+
Date: Tue Jan 6 02:05:57 2009 -0800
|
2721
|
+
|
2722
|
+
Use syswrite_full where we previously used syswrite
|
2723
|
+
|
2724
|
+
This is a bit safer since we'll retry on short writes
|
2725
|
+
instead of silently failing...
|
2726
|
+
|
2727
|
+
commit 8f33fa98734a3b2d44c81e63ff77851887d736d3
|
2728
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2729
|
+
Date: Tue Jan 6 02:05:56 2009 -0800
|
2730
|
+
|
2731
|
+
Use syswrite_full when PUT-ing smaller files
|
2732
|
+
|
2733
|
+
Socket#send will return with short writes and IO.write just
|
2734
|
+
sucks, so expose our existing syswrite_full routine to the
|
2735
|
+
public.
|
2736
|
+
|
2737
|
+
While we're at it, add a unit test to try to ensure that we're
|
2738
|
+
correctly doing syswrite_full here. System-specific behavior
|
2739
|
+
dealing with buffer sizes is not easy to test...
|
2740
|
+
|
2741
|
+
commit 27092c172aaf828740f85d45a410a18c346db8f8
|
2742
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2743
|
+
Date: Mon Jan 5 19:05:38 2009 -0800
|
2744
|
+
|
2745
|
+
Mysql: fix get_paths
|
2746
|
+
|
2747
|
+
Oops, this method needs to bypass transformations we
|
2748
|
+
in the normal MogileFS::MogileFS code path.
|
2749
|
+
|
2750
|
+
commit 14da9651b3227bea0dcc01eaf09364d8d1ebc274
|
2751
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2752
|
+
Date: Mon Jan 5 13:40:31 2009 -0800
|
2753
|
+
|
2754
|
+
Remove all trailing whitespace
|
2755
|
+
|
2756
|
+
This got noticed when I imported this project into another
|
2757
|
+
project vendor/ subdirectory (no, I've decided to not use
|
2758
|
+
submodules for that project).
|
2759
|
+
|
2760
|
+
commit fdefa0ac60dda5d96abf279d5a4df4521325d838
|
2761
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2762
|
+
Date: Mon Jan 5 13:26:57 2009 -0800
|
2763
|
+
|
2764
|
+
Update Manifest, include Make target for generating it
|
2765
|
+
|
2766
|
+
commit 12d8afa7539915ca448e362ee6edc39e49d9a07b
|
2767
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2768
|
+
Date: Mon Jan 5 13:20:24 2009 -0800
|
2769
|
+
|
2770
|
+
mog: fix fallback to MOG_HOSTS env if MOG_TRACKERS is empty
|
2771
|
+
|
2772
|
+
commit c0450c6888c6234bfbd324672ddcedb33901d21e
|
2773
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2774
|
+
Date: Tue Dec 30 18:38:48 2008 -0800
|
2775
|
+
|
2776
|
+
Don't let size(key) get tricked by non-200 OK responses
|
2777
|
+
|
2778
|
+
We never checked the HTTP status code when making the HEAD
|
2779
|
+
request. All this HTTP stuff should probably be moved to
|
2780
|
+
HTTPFile
|
2781
|
+
|
2782
|
+
commit dda46f246f93ac31512582767c402957fb2fbaa1
|
2783
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2784
|
+
Date: Tue Dec 30 18:03:06 2008 -0800
|
2785
|
+
|
2786
|
+
Cleanup and document http_get_sock
|
2787
|
+
|
2788
|
+
Correctly fail when we get non-200 HTTP responses and retry on
|
2789
|
+
the next URI.
|
2790
|
+
|
2791
|
+
commit e07b59855a61a4053810f72e5a9f2000d54964e5
|
2792
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2793
|
+
Date: Tue Dec 30 14:39:31 2008 -0800
|
2794
|
+
|
2795
|
+
new MogileFS::Network module, move verify_uris there
|
2796
|
+
|
2797
|
+
This will include networks and optimal URI selection support
|
2798
|
+
|
2799
|
+
commit dfa94f76c60e54376372e181a25c080c611bb323
|
2800
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2801
|
+
Date: Mon Dec 29 16:50:54 2008 -0800
|
2802
|
+
|
2803
|
+
History: note that 2.0.0 is still a work-in-progress
|
2804
|
+
|
2805
|
+
commit 91276ae9131c405050b1f31af0680475043a9e0b
|
2806
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2807
|
+
Date: Wed Dec 24 16:53:22 2008 -0800
|
2808
|
+
|
2809
|
+
sysrwloop: make sure descriptors are flushed and synced
|
2810
|
+
|
2811
|
+
"io.sync = true" does not appear to flush file pointers in MRI
|
2812
|
+
1.8, we need to explicitly flush it first.
|
2813
|
+
|
2814
|
+
commit 0d3607a455141a428b105b39e3be1c263cc48e8a
|
2815
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2816
|
+
Date: Wed Dec 24 16:47:45 2008 -0800
|
2817
|
+
|
2818
|
+
GNUmakefile: allow "make test/test*.rb" to work
|
2819
|
+
|
2820
|
+
Also, remove the PID uniqueness thing, it's easy enough
|
2821
|
+
to just create a new directory if we want to run tests
|
2822
|
+
in parallel... Additionally, add ignores in for the
|
2823
|
+
log files.
|
2824
|
+
|
2825
|
+
commit ab87a8472ee42785364ab1ee84ea00e06cb592d8
|
2826
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2827
|
+
Date: Wed Dec 24 03:22:57 2008 -0800
|
2828
|
+
|
2829
|
+
test_mogilefs: fix broken test case that was timing out
|
2830
|
+
|
2831
|
+
And incorrectly nested assertions in the tests made
|
2832
|
+
sure the errors were never caught, too.
|
2833
|
+
|
2834
|
+
Now the unit tests run in about 3s for me
|
2835
|
+
|
2836
|
+
Damn Ruby conventions and 2-space indents...
|
2837
|
+
|
2838
|
+
commit c07ee9fdcc00e5af18993b3cda9d17f91351d09e
|
2839
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2840
|
+
Date: Wed Dec 24 03:09:50 2008 -0800
|
2841
|
+
|
2842
|
+
GNUmakefile: remove dependency on bash3
|
2843
|
+
|
2844
|
+
-o pipefail was only useful when I was experimenting
|
2845
|
+
with unbuffering output to the terminal. I've decided
|
2846
|
+
to just forgo terminal spewing in the tests, and the
|
2847
|
+
lone use of cat(1) is highly unlikely to fail..
|
2848
|
+
|
2849
|
+
commit 28aab06e493363b143476d44ec3d39e8403cd28e
|
2850
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2851
|
+
Date: Wed Dec 24 00:13:48 2008 -0800
|
2852
|
+
|
2853
|
+
test_mogilefs: allow NR_CHUNKS to be overridable via env
|
2854
|
+
|
2855
|
+
This way tests can run quicker by default but we
|
2856
|
+
can still use larger ones to test things.
|
2857
|
+
|
2858
|
+
commit e6ff1c564a5420d7ea855fc7312caaa9e280f921
|
2859
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2860
|
+
Date: Tue Dec 23 20:44:27 2008 -0800
|
2861
|
+
|
2862
|
+
shorten MogileFS__DbBackend test name
|
2863
|
+
|
2864
|
+
commit a326d26e281e440375925970912c6a9e6b07b7a8
|
2865
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2866
|
+
Date: Tue Dec 23 20:27:08 2008 -0800
|
2867
|
+
|
2868
|
+
HTTPFile: handle multiple device failover correctly
|
2869
|
+
|
2870
|
+
Previously, when we got multiple destinations to
|
2871
|
+
upload to and one of them failed, we failed to
|
2872
|
+
correctly retry the next destination. This will
|
2873
|
+
set the correct devid and URL.
|
2874
|
+
|
2875
|
+
commit 5ba07ec56c5c8f89ef9390f649f12fdfcf611b49
|
2876
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2877
|
+
Date: Tue Dec 23 19:09:40 2008 -0800
|
2878
|
+
|
2879
|
+
MogileFS::MogileFS: simplify get_paths
|
2880
|
+
|
2881
|
+
We dropped NFS support, so this can be simplified further.
|
2882
|
+
|
2883
|
+
commit d4a3c3a63b20ea6a863e70c026c7b08d1c70d52b
|
2884
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2885
|
+
Date: Tue Dec 23 18:22:15 2008 -0800
|
2886
|
+
|
2887
|
+
Add GNU Makefile for running tests in a parallel
|
2888
|
+
|
2889
|
+
I'm getting a 40% decreas with my current set of tests
|
2890
|
+
on my dual core machine.
|
2891
|
+
|
2892
|
+
commit 8ddfde0f598d0f7ddebf2f81293475e16125f538
|
2893
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2894
|
+
Date: Tue Dec 23 18:14:03 2008 -0800
|
2895
|
+
|
2896
|
+
test/setup: remove rubygems and zentest assertions
|
2897
|
+
|
2898
|
+
I don't think we ever used the assertions from ZenTest
|
2899
|
+
and rubygems increases load time on my box.
|
2900
|
+
|
2901
|
+
commit cd821f79aff72385412c4338a2883d5cad3a8d76
|
2902
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2903
|
+
Date: Tue Dec 23 17:06:13 2008 -0800
|
2904
|
+
|
2905
|
+
test_client: make this work outside of "rake test"
|
2906
|
+
|
2907
|
+
I prefer running my tests directly from the command-line
|
2908
|
+
ruby -I lib/ test/test_client.rb
|
2909
|
+
|
2910
|
+
commit a784189571101463dd4291207f989147e98d81f4
|
2911
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2912
|
+
Date: Tue Dec 23 16:56:49 2008 -0800
|
2913
|
+
|
2914
|
+
backend: remove pointless connect_to method
|
2915
|
+
|
2916
|
+
We used to mock it for the tests, but we use real sockets now.
|
2917
|
+
|
2918
|
+
commit f806d7c3adbdc5062666df0336f5da6d0dd72dab
|
2919
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2920
|
+
Date: Tue Dec 23 16:56:07 2008 -0800
|
2921
|
+
|
2922
|
+
test/setup: EACCES, not EACCES_S_
|
2923
|
+
|
2924
|
+
Also, fix up a warning about @thr being uninitialized
|
2925
|
+
that showed up in testing.
|
2926
|
+
|
2927
|
+
commit 9d2810194a64427b90a4e226fbd0dfb16c9bc095
|
2928
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2929
|
+
Date: Tue Dec 23 16:45:48 2008 -0800
|
2930
|
+
|
2931
|
+
Make sure select(2) calls are IO.select
|
2932
|
+
|
2933
|
+
We don't mock `select' anywhere, and this makes us safer
|
2934
|
+
in case we're included in another module.
|
2935
|
+
|
2936
|
+
commit 819027c713930d8234abdc633344922382958bed
|
2937
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2938
|
+
Date: Tue Dec 23 16:43:29 2008 -0800
|
2939
|
+
|
2940
|
+
backend: remember to require 'thread' here
|
2941
|
+
|
2942
|
+
It was accidenally removed during the TCPSocket removal
|
2943
|
+
|
2944
|
+
commit a6cebdeeb3f89b8097abbe4a5fddd798e16c8758
|
2945
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2946
|
+
Date: Mon Dec 22 20:56:57 2008 -0800
|
2947
|
+
|
2948
|
+
test/setup: TempServer saner port acquiry
|
2949
|
+
|
2950
|
+
Originally I had a process-based port thing stolen from Mongrel
|
2951
|
+
(and subsequently screwed up). Just use a random port that's
|
2952
|
+
not in use right now. Additionlly, retry if we get EACCESS in
|
2953
|
+
case we're on a strange system where binding certain ports are
|
2954
|
+
not allowed.
|
2955
|
+
|
2956
|
+
commit dd2089b2646e77fef396e2e62ad313851bfbf04e
|
2957
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2958
|
+
Date: Mon Dec 22 20:44:45 2008 -0800
|
2959
|
+
|
2960
|
+
Remove NFS support
|
2961
|
+
|
2962
|
+
MogileFS 2.x upstream no longer supports it, and it's
|
2963
|
+
become a maintenance burden and NFS is a horrible thing
|
2964
|
+
anyways.
|
2965
|
+
|
2966
|
+
Attempting to use this with servers that support NFS will result
|
2967
|
+
in MogileFS::UnsupportedPathError being raised.
|
2968
|
+
|
2969
|
+
commit 8e44957300037c8bfd029fb21b665ceb98e7817a
|
2970
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2971
|
+
Date: Mon Dec 22 20:08:56 2008 -0800
|
2972
|
+
|
2973
|
+
HTTPFile: rename bigfile accessor to big_io
|
2974
|
+
|
2975
|
+
"bigfile" is used by the large file support, too.
|
2976
|
+
"big_io" also allows an IO object to be sent to us, as well
|
2977
|
+
(and not a pathname)
|
2978
|
+
|
2979
|
+
commit 16cfeeb035c0c0362e8f4fb1707f9006573defc1
|
2980
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2981
|
+
Date: Mon Dec 22 19:00:13 2008 -0800
|
2982
|
+
|
2983
|
+
MogileFS::HTTPFile: support TCP_CORK on Linux
|
2984
|
+
|
2985
|
+
Since we use TCP_NODELAY with all sockets, the bigfile code path
|
2986
|
+
here is less efficient because it sends the headers separately.
|
2987
|
+
So use TCP_CORK for this part of the code to avoid sending
|
2988
|
+
partial frames.
|
2989
|
+
|
2990
|
+
Additionally rewrite this to use send(2) which is more suitable
|
2991
|
+
for sockets.
|
2992
|
+
|
2993
|
+
Since we didn't have any previously, add a test for uploading
|
2994
|
+
large files.
|
2995
|
+
|
2996
|
+
commit 46b2c5ff196c9194abae8954c9efdc899b1f1ff8
|
2997
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
2998
|
+
Date: Mon Dec 22 18:45:08 2008 -0800
|
2999
|
+
|
3000
|
+
Create all sockets with TCP_NODELAY
|
3001
|
+
|
3002
|
+
This should reduce latency. We send reasonably-sized
|
3003
|
+
chunks whenever sending large requests anyways, so
|
3004
|
+
throughput shouldn't be noticeably affected.
|
3005
|
+
|
3006
|
+
commit 4a5794447a682b8034b2381054df28bd6296c4ee
|
3007
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3008
|
+
Date: Mon Dec 22 18:28:27 2008 -0800
|
3009
|
+
|
3010
|
+
Replace TCPSocket + timeout code with Socket + IO.select
|
3011
|
+
|
3012
|
+
This removes the dependency on unsafe methods used in the
|
3013
|
+
Timeout class.
|
3014
|
+
|
3015
|
+
Charles makes some good points here:
|
3016
|
+
http://blog.headius.com/2008/02/rubys-threadraise-threadkill-timeoutrb.html
|
3017
|
+
|
3018
|
+
And even matz agrees:
|
3019
|
+
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/294446
|
3020
|
+
|
3021
|
+
Of course, I strongly dislike any unnecessary use of threads,
|
3022
|
+
and implementations using native threads to do timeouts makes me
|
3023
|
+
even more uncomfortable.
|
3024
|
+
|
3025
|
+
commit b7ba273a043633c01d9ae8cda8ae9db4cc5dcf07
|
3026
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3027
|
+
Date: Mon Dec 22 17:37:02 2008 -0800
|
3028
|
+
|
3029
|
+
test: remove FakeSocket code
|
3030
|
+
|
3031
|
+
These tests forced us to use TCPSocket, which wasn't friendly to
|
3032
|
+
sockets created with Socket.new (for asynchronous connect(2)
|
3033
|
+
calls).
|
3034
|
+
|
3035
|
+
No changes to the core MogileFS components have been
|
3036
|
+
made. I want to verify the new TempServer implementation
|
3037
|
+
performs correctly with the current code.
|
3038
|
+
|
3039
|
+
commit df2af32f01bc995e9f311b51d3351ee042e23483
|
3040
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3041
|
+
Date: Thu Dec 18 20:52:24 2008 -0800
|
3042
|
+
|
3043
|
+
Allow MogileFS::MogileFS to use :db_backend => MogileFS::Mysql
|
3044
|
+
|
3045
|
+
This should complete the integration of the read-only Mysql
|
3046
|
+
backend into MogileFS::MogileFS.
|
3047
|
+
|
3048
|
+
commit bd42a70bb299e088b1c244c3ffe46695393521c5
|
3049
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3050
|
+
Date: Thu Dec 18 20:31:35 2008 -0800
|
3051
|
+
|
3052
|
+
MogileFS::Mysql: sleep() is MogileFS::Backend-compatible
|
3053
|
+
|
3054
|
+
Keep methods in the Mysql backend as compatible with the
|
3055
|
+
standard Backend as possible.
|
3056
|
+
|
3057
|
+
commit fa796bf60396430a3de4ce0409d7f1edf663856f
|
3058
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3059
|
+
Date: Thu Dec 18 20:19:15 2008 -0800
|
3060
|
+
|
3061
|
+
test: move mocks from test_mysql to test/setup
|
3062
|
+
|
3063
|
+
This allows us to reuse this code in another test
|
3064
|
+
|
3065
|
+
commit 1b2589208ef8765ab17af06be3e12164ab7b1492
|
3066
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3067
|
+
Date: Thu Dec 18 20:14:23 2008 -0800
|
3068
|
+
|
3069
|
+
test_mysql: remove unnecessary requires
|
3070
|
+
|
3071
|
+
Not sure how they got there, probably just some junk leftover
|
3072
|
+
from copy & pasting...
|
3073
|
+
|
3074
|
+
commit 0cdb20bfb76653a74d44c434e243029117a7a48d
|
3075
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3076
|
+
Date: Thu Dec 18 19:57:58 2008 -0800
|
3077
|
+
|
3078
|
+
MogileFS::Mysql: start making this a backend for MogileFS::MogileFS
|
3079
|
+
|
3080
|
+
This will allow us to avoid redundant code and modules,
|
3081
|
+
allowing existing applications to more easily use the
|
3082
|
+
direct MySQL interface as a drop-in replacement for
|
3083
|
+
read-only MogileFS::MogileFS applications.
|
3084
|
+
|
3085
|
+
commit 19e15f7b029b3c3c5e9eeed948a37e2316ed5975
|
3086
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3087
|
+
Date: Thu Dec 18 19:30:35 2008 -0800
|
3088
|
+
|
3089
|
+
MogileFS::Mysql: list_keys returns nil if nothing was found
|
3090
|
+
|
3091
|
+
This is to be compatible with MogileFS::MogileFS
|
3092
|
+
|
3093
|
+
commit 61e2ccc21b8d94087a11efced682461a63e49b09
|
3094
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3095
|
+
Date: Thu Dec 18 19:09:57 2008 -0800
|
3096
|
+
|
3097
|
+
Add some documentation and comments to new code
|
3098
|
+
|
3099
|
+
Otherwise I'll forget what I've been doing, too.
|
3100
|
+
|
3101
|
+
commit 37a0f630737d57ca42a8a8019b7c4351387459a9
|
3102
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3103
|
+
Date: Thu Dec 18 18:09:29 2008 -0800
|
3104
|
+
|
3105
|
+
MogileFS::Bigfile: remove Thread.abort_on_exception setting
|
3106
|
+
|
3107
|
+
This was leftover from testing. As it affects global
|
3108
|
+
application state behind the user's back, it should not
|
3109
|
+
be set here.
|
3110
|
+
|
3111
|
+
commit 8e271d4f2a29bf1935cc2b3ecfecd0f444b933ba
|
3112
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3113
|
+
Date: Thu Dec 18 17:53:48 2008 -0800
|
3114
|
+
|
3115
|
+
MogileFS::Mysql: read-only methods for MogileFS::MogileFS compat
|
3116
|
+
|
3117
|
+
These methods help allow MogileFS::Mysql objects to be used as a
|
3118
|
+
drop-in replacement for MogileFS::MogileFS in read-only
|
3119
|
+
situations.
|
3120
|
+
|
3121
|
+
commit 6f0a6159d8335cc6a08f118048f7c8175807c7c1
|
3122
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3123
|
+
Date: Thu Dec 18 17:24:46 2008 -0800
|
3124
|
+
|
3125
|
+
Add test for the Mysql interface
|
3126
|
+
|
3127
|
+
This doesn't require a Mysql server to be setup, limiting the
|
3128
|
+
effectiveness of it a bit, but should be enough to ensure
|
3129
|
+
refactorings don't break things.
|
3130
|
+
|
3131
|
+
commit daab68d1da073648098be96fbb468315cec36b48
|
3132
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3133
|
+
Date: Thu Dec 18 15:22:13 2008 -0800
|
3134
|
+
|
3135
|
+
MogileFS::Mysql: small cleanups to make testing easier
|
3136
|
+
|
3137
|
+
The get_paths change should be a small optimization, too.
|
3138
|
+
|
3139
|
+
commit 0255844ed2495aa7fa7366fb439176174413472a
|
3140
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3141
|
+
Date: Fri Dec 12 11:38:29 2008 -0800
|
3142
|
+
|
3143
|
+
MogileFS::Mysql: more flexible Mysql driver handling
|
3144
|
+
|
3145
|
+
Remove hard dependency on mysqlplus driver. We can detect
|
3146
|
+
whether the driver supports the c_async_query method or not.
|
3147
|
+
This also allows more flexible connection setup and management.
|
3148
|
+
|
3149
|
+
commit cb85f82e640762aea81b7ad2b8aec1efed0aa572
|
3150
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3151
|
+
Date: Tue Dec 2 16:33:05 2008 -0800
|
3152
|
+
|
3153
|
+
initial bigfile read support
|
3154
|
+
|
3155
|
+
Needs more tests, but it seems to work...
|
3156
|
+
|
3157
|
+
I seem to have discovered a bug in mogtool which causes it to
|
3158
|
+
generate incorrect MD5 checksums when the --gzip flag is used
|
3159
|
+
(and --gzip actually just does zlib deflate, not something that
|
3160
|
+
gzip(1) can actually decrypt).
|
3161
|
+
|
3162
|
+
So right now MD5 checksums are only verified on non-zlib-deflated
|
3163
|
+
files.
|
3164
|
+
|
3165
|
+
commit 83dfe9644cbbc83b0f3bd05537874eecc8ad0a8c
|
3166
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3167
|
+
Date: Wed Dec 3 14:47:22 2008 -0800
|
3168
|
+
|
3169
|
+
MogileFS::Util: avoid calling syswrite on zero-length buffer
|
3170
|
+
|
3171
|
+
This bug can't have a noticeable effect since writing a
|
3172
|
+
zero-length buffer would result in nothing being written, but
|
3173
|
+
this is more correct and can save a method dispatch and syscall.
|
3174
|
+
|
3175
|
+
commit 02393ab1f3517436f1b8adee3c97e2b71a1f41f4
|
3176
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3177
|
+
Date: Fri Oct 31 16:40:45 2008 -0700
|
3178
|
+
|
3179
|
+
sysrwloop: safely handle non-blocking sockets
|
3180
|
+
|
3181
|
+
Non-blocking sockets can bail out with EAGAIN (and any socket
|
3182
|
+
also with EINTR), so retry if we get those calls.
|
3183
|
+
|
3184
|
+
commit 4f57bb12f080de0ba7314319b1f1434e0c2e40a8
|
3185
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3186
|
+
Date: Fri Oct 31 14:54:14 2008 -0700
|
3187
|
+
|
3188
|
+
mog: fix 'tee' command so that it actually outputs to stdout
|
3189
|
+
|
3190
|
+
However, if the stdout stream is pointing to /dev/null, then
|
3191
|
+
just avoid writing anything to save the function call overhead
|
3192
|
+
entirely.
|
3193
|
+
|
3194
|
+
commit 746c453e030190392a0743e8b935a38eab899a7f
|
3195
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3196
|
+
Date: Thu Sep 18 14:00:59 2008 -0700
|
3197
|
+
|
3198
|
+
Allow sysrwloop to take an optional filter Proc
|
3199
|
+
|
3200
|
+
This will let us run our copies through MD5 and
|
3201
|
+
decompression inline.
|
3202
|
+
|
3203
|
+
commit b36b892c735407bba34502e71e95d7481fc3ad79
|
3204
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3205
|
+
Date: Wed Sep 17 18:34:15 2008 -0700
|
3206
|
+
|
3207
|
+
Move http_get_sock into its own function
|
3208
|
+
|
3209
|
+
We'll be reusing it in the big file module
|
3210
|
+
|
3211
|
+
commit 03fe01aa98e00ccf12f58e5bdb69d742e054fa36
|
3212
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3213
|
+
Date: Fri Oct 24 14:25:34 2008 -0700
|
3214
|
+
|
3215
|
+
mysql: documentation for public functions
|
3216
|
+
|
3217
|
+
commit 363775c63c03f45175136bc514eba3ea143a5f09
|
3218
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3219
|
+
Date: Fri Oct 24 14:15:11 2008 -0700
|
3220
|
+
|
3221
|
+
add .gitignore
|
3222
|
+
|
3223
|
+
commit 1c9463b944ac44277598955a2ce331679afff5cd
|
3224
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3225
|
+
Date: Fri Oct 24 14:13:58 2008 -0700
|
3226
|
+
|
3227
|
+
History: add note about MogileFS::Mysql
|
3228
|
+
|
3229
|
+
commit 0bdf69f413f64cbf52a15540cf0441930bf81688
|
3230
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3231
|
+
Date: Fri Oct 24 14:13:06 2008 -0700
|
3232
|
+
|
3233
|
+
LICENSE: add Eric Wong to copyright
|
3234
|
+
|
3235
|
+
commit 5b073c6f5878a1a6b582ab007b6ffa237f6317bb
|
3236
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3237
|
+
Date: Fri Oct 24 14:12:54 2008 -0700
|
3238
|
+
|
3239
|
+
README: formatting changes, remove trailing whitespace
|
3240
|
+
|
3241
|
+
commit f6cbfa23e03c815b7957156a6f3e6c5e33c8ce2c
|
3242
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3243
|
+
Date: Fri Oct 24 14:11:15 2008 -0700
|
3244
|
+
|
3245
|
+
README: note that :root is only required for NFS
|
3246
|
+
|
3247
|
+
commit 97b29016c18b8bd1b5df7a3e218ba9a9d2a1b96c
|
3248
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3249
|
+
Date: Fri Oct 24 13:40:57 2008 -0700
|
3250
|
+
|
3251
|
+
README: add git repository links, update Warning section
|
3252
|
+
|
3253
|
+
commit 47ee90f6c2190f4754d445e75b5e16c766e4da56
|
3254
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3255
|
+
Date: Fri Oct 24 13:31:09 2008 -0700
|
3256
|
+
|
3257
|
+
mysql: allow specifying connect,read,write timeouts
|
3258
|
+
|
3259
|
+
The Mysql driver allows these timeouts to be specified,
|
3260
|
+
so allow the following parameters to be passed to the
|
3261
|
+
initializer:
|
3262
|
+
|
3263
|
+
:connect_timeout
|
3264
|
+
:read_timeout
|
3265
|
+
:write_timeout
|
3266
|
+
|
3267
|
+
These must be integer values (representing seconds)
|
3268
|
+
and will be passed straight through to the underlying
|
3269
|
+
Mysql driver (which will hopefully support sub-second
|
3270
|
+
timeouts at some point...).
|
3271
|
+
|
3272
|
+
All timeouts will default to 1 (second) here.
|
3273
|
+
|
3274
|
+
commit 6b94f724d090d352951f92fceda1b9cd47a997c7
|
3275
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3276
|
+
Date: Tue Oct 21 19:06:34 2008 -0700
|
3277
|
+
|
3278
|
+
Mysql: size() method returns an integer
|
3279
|
+
|
3280
|
+
Returning a string here does not make sense, and we
|
3281
|
+
should be consistent with the MogileFS::MogileFS
|
3282
|
+
interface.
|
3283
|
+
|
3284
|
+
commit 877338e485c614fc7539a47cab7ae2bf8597382d
|
3285
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3286
|
+
Date: Tue Oct 21 18:55:29 2008 -0700
|
3287
|
+
|
3288
|
+
MySQL: switch to async interface
|
3289
|
+
|
3290
|
+
This lets us use multiple green threads safely, but means
|
3291
|
+
we now require the async mysqlplus driver available here:
|
3292
|
+
|
3293
|
+
http://github.com/oldmoe/mysqlplus/tree/master
|
3294
|
+
|
3295
|
+
commit f0df7a9b9b73cb39d445400cf1869de021e516a9
|
3296
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3297
|
+
Date: Fri Oct 17 20:55:20 2008 -0700
|
3298
|
+
|
3299
|
+
MogileFS::Backend: timeout code allows retrying other backends
|
3300
|
+
|
3301
|
+
This allows other trackers to be used if the current
|
3302
|
+
one dies or croaks while we're connected. This also
|
3303
|
+
allows us to better handle spurious wakeups, if we get
|
3304
|
+
any...
|
3305
|
+
|
3306
|
+
commit fb3536089dc7f663458b90f311ab704cfb7b768f
|
3307
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3308
|
+
Date: Fri Oct 17 14:38:27 2008 -0700
|
3309
|
+
|
3310
|
+
Add MogileFS::Mysql class, allowing read-only access to slaves
|
3311
|
+
|
3312
|
+
This allows for full read redundancy if the master MySQL instance
|
3313
|
+
or trackers go down. This can potentially offer higher
|
3314
|
+
performance; too; as it eliminates trackers from the call
|
3315
|
+
path.
|
3316
|
+
|
3317
|
+
commit 39c131182f33c02eb2883e115a845f0d17062edd
|
3318
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3319
|
+
Date: Thu Oct 16 17:29:53 2008 -0700
|
3320
|
+
|
3321
|
+
Add verify_uris utility method
|
3322
|
+
|
3323
|
+
This lets us do client-side verification of URIs, taking load
|
3324
|
+
off mogilefsd processes and being more reliable (since it'll be
|
3325
|
+
us, the clients, talking to the backend storage nodes to
|
3326
|
+
retrieve/send data and not the mogilefsd processes).
|
3327
|
+
|
3328
|
+
commit f0601cab1c309bf9d213ac8b392f359f2ea87e1d
|
3329
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3330
|
+
Date: Wed Oct 15 21:06:30 2008 -0700
|
3331
|
+
|
3332
|
+
mog: try more verbose error handling
|
3333
|
+
|
3334
|
+
commit fb3d01d38c5b2b4a839ab0d1da97fe2c0ccc5b8c
|
3335
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3336
|
+
Date: Wed Oct 15 18:56:01 2008 -0700
|
3337
|
+
|
3338
|
+
Start working on v2.0.0 entry and notes
|
3339
|
+
|
3340
|
+
commit 2aa8badf3b7e1d664e137901ce6bd6b61e793ca6
|
3341
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3342
|
+
Date: Wed Oct 15 20:06:18 2008 -0700
|
3343
|
+
|
3344
|
+
Avoid double-close on bigfiles
|
3345
|
+
|
3346
|
+
This was leading to ugly "no_temp_file" errors that
|
3347
|
+
got converted to exceptions.
|
3348
|
+
|
3349
|
+
commit 2e9e8cc2c0ea08e090018891dd8538ec675c0825
|
3350
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3351
|
+
Date: Wed Oct 15 18:51:11 2008 -0700
|
3352
|
+
|
3353
|
+
Backend: use the consistent shutdown() method to close our socket
|
3354
|
+
|
3355
|
+
This always closes it and ignores any exceptions that may
|
3356
|
+
occur (since it's going away anyways). This also sets
|
3357
|
+
the instance variable to nil for easy checking.
|
3358
|
+
|
3359
|
+
commit a9566b561662aa0925eff49adad9813e5ffff179
|
3360
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3361
|
+
Date: Wed Oct 15 18:47:12 2008 -0700
|
3362
|
+
|
3363
|
+
list_keys trap exception in this method
|
3364
|
+
|
3365
|
+
commit 968cbe34ece986d4d0f072117cf5e278823dfae9
|
3366
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3367
|
+
Date: Wed Oct 15 18:34:32 2008 -0700
|
3368
|
+
|
3369
|
+
mog: retry on Backend::NoDevicesError
|
3370
|
+
|
3371
|
+
I seem to hit this quite often under heavy load...
|
3372
|
+
|
3373
|
+
commit a62053e547279b59fd2ba3bcbe0a84583ecf23b7
|
3374
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3375
|
+
Date: Wed Oct 15 18:06:40 2008 -0700
|
3376
|
+
|
3377
|
+
Replace the last of the ad-hoc RuntimeError exceptions
|
3378
|
+
|
3379
|
+
The ArgumentErrors happen at initialization time, so
|
3380
|
+
I'll keep those as-is
|
3381
|
+
|
3382
|
+
commit 20c337eb0c043e0033b794df93b51627f13b729e
|
3383
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3384
|
+
Date: Wed Oct 15 17:50:22 2008 -0700
|
3385
|
+
|
3386
|
+
mog: increase timeout for interactive use
|
3387
|
+
|
3388
|
+
The default 3 second timeout is too low sometimes on an
|
3389
|
+
overloaded system. Since this is intended for interactive
|
3390
|
+
use, be more patient...
|
3391
|
+
|
3392
|
+
commit c02257508fd7a8e8529b4b37634323fc1136fee9
|
3393
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3394
|
+
Date: Wed Oct 15 17:45:18 2008 -0700
|
3395
|
+
|
3396
|
+
Backend: convert socket/invalid response errors to exceptions
|
3397
|
+
|
3398
|
+
commit c22186b461c7f73f0a083dae3d40eebab09d7139
|
3399
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3400
|
+
Date: Wed Oct 15 17:27:57 2008 -0700
|
3401
|
+
|
3402
|
+
HTTPFile: use a standard set of exceptions here, too
|
3403
|
+
|
3404
|
+
Again, easier to trap under MogileFS::Error is better
|
3405
|
+
|
3406
|
+
commit 84c9d66d180aa392a8150b61236ee1577601158c
|
3407
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3408
|
+
Date: Wed Oct 15 16:46:53 2008 -0700
|
3409
|
+
|
3410
|
+
HTTPFile: remove scary message about this not working
|
3411
|
+
|
3412
|
+
It surely does work for me..
|
3413
|
+
|
3414
|
+
commit 2c09ff42b2e96f28dda283730bdb9deb68946843
|
3415
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3416
|
+
Date: Wed Oct 15 16:30:15 2008 -0700
|
3417
|
+
|
3418
|
+
Raise MogileFS::ReadOnly error for readonly instances
|
3419
|
+
|
3420
|
+
Also easier to trap and deal with
|
3421
|
+
|
3422
|
+
commit 0d4068e5e890aad959419ad932a162ab170868c5
|
3423
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3424
|
+
Date: Wed Oct 15 16:24:12 2008 -0700
|
3425
|
+
|
3426
|
+
Use exceptions for all errors sent to us from the backend
|
3427
|
+
|
3428
|
+
commit fb9f44979ee98b7d90c0501986e75d633ec555f0
|
3429
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3430
|
+
Date: Wed Oct 15 15:27:29 2008 -0700
|
3431
|
+
|
3432
|
+
Backend: automatically create exceptions based on errors we get
|
3433
|
+
|
3434
|
+
This allows us to raise exceptions based on the errors
|
3435
|
+
we get upstream can are easier to trap an deal with
|
3436
|
+
in applications
|
3437
|
+
|
3438
|
+
commit ccdf900ef999019a2a4b04eefb3ec34b4c0eae15
|
3439
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3440
|
+
Date: Wed Oct 15 14:35:13 2008 -0700
|
3441
|
+
|
3442
|
+
create MogileFS::Error class to base our other errors off of
|
3443
|
+
|
3444
|
+
This will allow users to trap MogileFS::Error to trap errors
|
3445
|
+
specific to our library.
|
3446
|
+
|
3447
|
+
commit 35644223ceba73228b8563aef43e75def3da2ecf
|
3448
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3449
|
+
Date: Tue Oct 7 13:43:29 2008 -0700
|
3450
|
+
|
3451
|
+
remove 'open-uri' dependency
|
3452
|
+
|
3453
|
+
The open-uri code path doesn't scale to large files at
|
3454
|
+
all, so there's no point in depending on it as the
|
3455
|
+
TCPSocket code path works just as well.
|
3456
|
+
|
3457
|
+
commit cbbf0f96d36922d237563bc71378902f0d342f36
|
3458
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3459
|
+
Date: Tue Oct 7 13:05:42 2008 -0700
|
3460
|
+
|
3461
|
+
MogileFS::MogileFS:: add paths_size() API call
|
3462
|
+
|
3463
|
+
This lets clients issue a single get_paths() call and
|
3464
|
+
to both retrieve paths and file sizes.
|
3465
|
+
|
3466
|
+
commit ffe803c5fe97890c0b44d78ffb5251e842d2cc13
|
3467
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3468
|
+
Date: Tue Oct 7 13:01:02 2008 -0700
|
3469
|
+
|
3470
|
+
Use TCPSocket instead of Net::HTTP for HEAD requests
|
3471
|
+
|
3472
|
+
Net::HTTP doesn't save us any lines of code here and it uses up
|
3473
|
+
unnecessary memory and allocations, slightly increasing latency.
|
3474
|
+
|
3475
|
+
Also, while we're at it, more gracefully handle size() failures
|
3476
|
+
if nodes are down.
|
3477
|
+
|
3478
|
+
commit 971b5ccb0708a4cc06772c5e7c2be379b3ff4d3d
|
3479
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3480
|
+
Date: Thu Oct 2 19:59:51 2008 -0700
|
3481
|
+
|
3482
|
+
Version 1.3.1
|
3483
|
+
|
3484
|
+
commit 53a15da3ce5f8bd3f00dcf30dac395423f6cb644
|
3485
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3486
|
+
Date: Thu Oct 2 19:56:56 2008 -0700
|
3487
|
+
|
3488
|
+
Remember to include MogileFS::Util in MogileFS::MogileFS
|
3489
|
+
|
3490
|
+
Tests passed, but certain applications based around this
|
3491
|
+
did not...
|
3492
|
+
|
3493
|
+
commit 242c6ff266959b581ff9bb44abbf897feae92444
|
3494
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3495
|
+
Date: Thu Sep 18 16:42:57 2008 -0700
|
3496
|
+
|
3497
|
+
Version 1.3.0
|
3498
|
+
|
3499
|
+
commit 29c83a1ffe5d28a3f5f71f3fa4c0683bd5d2eb5a
|
3500
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3501
|
+
Date: Thu Sep 18 16:39:56 2008 -0700
|
3502
|
+
|
3503
|
+
Update maintainer and release info
|
3504
|
+
|
3505
|
+
commit f10e8899a1cc969ed2e7afd0b0b0a211ba6b70de
|
3506
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3507
|
+
Date: Thu Sep 18 16:38:29 2008 -0700
|
3508
|
+
|
3509
|
+
Fix ZenTest dependency and make it a dev-only dep
|
3510
|
+
|
3511
|
+
commit 9c866e3c6a1115f5e16aaa6612790905f6cf6391
|
3512
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3513
|
+
Date: Thu Sep 18 16:29:59 2008 -0700
|
3514
|
+
|
3515
|
+
mog: add `test' command, currently only supports "test -e"
|
3516
|
+
|
3517
|
+
Eventually this will have more switches for testing
|
3518
|
+
various bigfile options.
|
3519
|
+
|
3520
|
+
commit 7f93c3f711785cc1215d17a9ab412998260745f0
|
3521
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3522
|
+
Date: Wed Sep 17 16:48:16 2008 -0700
|
3523
|
+
|
3524
|
+
mog: ensure the tempfile is killed at death
|
3525
|
+
|
3526
|
+
commit 71a440d04e6c9496062ed123708b71c051a22290
|
3527
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3528
|
+
Date: Thu Sep 11 18:59:45 2008 -0700
|
3529
|
+
|
3530
|
+
mog: handle SIGPIPE and SIGINT gracefully
|
3531
|
+
|
3532
|
+
SIGPIPE is very handy for scripting, and I hit SIGINT
|
3533
|
+
in the console pretty often, too; so don't spew to
|
3534
|
+
STDERR when we catch these signals.
|
3535
|
+
|
3536
|
+
commit c06411e24f7323688e9036db138caf307ad025f0
|
3537
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3538
|
+
Date: Mon Sep 8 17:36:23 2008 -0700
|
3539
|
+
|
3540
|
+
Add `mog' command-line tool as an example/frontend
|
3541
|
+
|
3542
|
+
This supports several UNIX-like subcommands:
|
3543
|
+
|
3544
|
+
cp FILE KEY - copy a file to a given key
|
3545
|
+
|
3546
|
+
cat KEY(s) - cat any number of keys to STDOUT
|
3547
|
+
|
3548
|
+
ls PREFIX - list keys matching PREFIX (not globbing)
|
3549
|
+
|
3550
|
+
rm KEY(s) - remove keys
|
3551
|
+
|
3552
|
+
mv FROMKEY TOKEY - rename a key
|
3553
|
+
|
3554
|
+
stat KEY(s) - show various information, including URLs and Size
|
3555
|
+
|
3556
|
+
tee KEY - read input from STDIN and write it to key
|
3557
|
+
(due to the limitations of HTTP servers
|
3558
|
+
and clients this is not streamed)
|
3559
|
+
|
3560
|
+
commit 6c8f2db31097998aaab21c05cab53b50bfc243c5
|
3561
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3562
|
+
Date: Thu Sep 4 18:53:14 2008 -0700
|
3563
|
+
|
3564
|
+
Lower the large-file threshold to 64K
|
3565
|
+
|
3566
|
+
Yes, I'm quite miserly when it comes to memory usage. Since the
|
3567
|
+
file is already on disk, just read it incrementally and stream
|
3568
|
+
it out to avoid having to deal with potential memory exhaustion
|
3569
|
+
issues on busy systems. There's also no benefit to slurping
|
3570
|
+
256MB and anything above 64K leads to diminishing returns on
|
3571
|
+
most systems I've seen.
|
3572
|
+
|
3573
|
+
commit 673861cd6fcb8f563de9c6300252d5ff290adee1
|
3574
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3575
|
+
Date: Thu Sep 4 18:47:39 2008 -0700
|
3576
|
+
|
3577
|
+
mogilefs: only timeout on connect/header reading
|
3578
|
+
|
3579
|
+
Reading the rest of the body can take a long time for big files
|
3580
|
+
(we expect that for big blocks) and the timeout is stupid in
|
3581
|
+
that case.
|
3582
|
+
|
3583
|
+
commit 71c71da5df7f680bd7dbdf4c28c7da3c4ee3ed45
|
3584
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3585
|
+
Date: Mon Sep 8 17:29:17 2008 -0700
|
3586
|
+
|
3587
|
+
Allow get_file_data to accept a block for large files
|
3588
|
+
|
3589
|
+
This block will be passed the IO object for reading the file.
|
3590
|
+
This is to prevent the client from having to slurp an entire
|
3591
|
+
large file into memory all at once.
|
3592
|
+
|
3593
|
+
commit 99735076974cad8c5485b949179701f9d36b0699
|
3594
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3595
|
+
Date: Mon Sep 8 17:26:02 2008 -0700
|
3596
|
+
|
3597
|
+
Add MogileFS::Util for a sysrwloop() function
|
3598
|
+
|
3599
|
+
Enable it in the HTTPFile PUT code. We'll also use
|
3600
|
+
it for get_file_data when handling large files next.
|
3601
|
+
|
3602
|
+
commit efaeed97b61f59d493ed8942d711fc705e0e9fb2
|
3603
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3604
|
+
Date: Wed Sep 3 20:40:43 2008 -0700
|
3605
|
+
|
3606
|
+
Fix each_keys loop termination condition
|
3607
|
+
|
3608
|
+
The underlying list_keys function can return nil,
|
3609
|
+
so don't try to run .empty? on nil.
|
3610
|
+
|
3611
|
+
commit 651eeeacec1e9c0d59652c3a0d90ee83ddea46a8
|
3612
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3613
|
+
Date: Wed Sep 3 15:36:25 2008 -0700
|
3614
|
+
|
3615
|
+
HTTPFile: use IO.sysread for better performance
|
3616
|
+
|
3617
|
+
IO.sysread is more GC-friendly than IO.read because it does not
|
3618
|
+
have to allocate additional userspace buffers. Userspace read
|
3619
|
+
buffering is redundant nowadays with modern kernels (especially
|
3620
|
+
in Linux 2.6 and almost always a performance hit).
|
3621
|
+
|
3622
|
+
Additionally, use an underdocumented feature of both IO.sysread
|
3623
|
+
and IO.read that allows it to reuse the existing buffer.
|
3624
|
+
Further reducing garbage collector overhead for large files.
|
3625
|
+
|
3626
|
+
commit 4c1f1924271dc828bb5eb22461b2b02390b11f6f
|
3627
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3628
|
+
Date: Wed Sep 3 15:24:13 2008 -0700
|
3629
|
+
|
3630
|
+
HTTPFile: more reasonable chunk size for big files
|
3631
|
+
|
3632
|
+
16M for a chunk is a huge amount of memory to slurp at once.
|
3633
|
+
64K is much more reasonable and chunk sizes above this lead
|
3634
|
+
to dimishing returns in performance.
|
3635
|
+
|
3636
|
+
commit 5939e0855ff1e84021cbfd4a72a6b6d9827a25df
|
3637
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3638
|
+
Date: Wed Sep 3 15:12:36 2008 -0700
|
3639
|
+
|
3640
|
+
Apply error handling patch from Matthew Willson
|
3641
|
+
|
3642
|
+
Ref: http://rubyforge.org/tracker/index.php?func=detail&aid=15987&group_id=1513&atid=5923
|
3643
|
+
> Submitted By: Matthew Willson
|
3644
|
+
> Summary: Errors on subsequent requests after client times out
|
3645
|
+
> waiting for a response from tracker on a previous request (it
|
3646
|
+
> leaves the socket open)
|
3647
|
+
>
|
3648
|
+
> Detailed description
|
3649
|
+
>
|
3650
|
+
> The summary says it all really.
|
3651
|
+
>
|
3652
|
+
> Once in a while, the tracker will time out responding to, say, a
|
3653
|
+
> create_open or a create_close command, raising one of these:
|
3654
|
+
>
|
3655
|
+
> MogileFS::UnreadableSocketError: 146.101.142.132:7001 never became readable
|
3656
|
+
> from /usr/lib/ruby/gems/1.8/gems/mogilefs-client-1.2.1/lib/mogilefs/backend.rb:158:in `readable?'
|
3657
|
+
> from /usr/lib/ruby/gems/1.8/gems/mogilefs-client-1.2.1/lib/mogilefs/backend.rb:122:in `do_request'
|
3658
|
+
> from /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
|
3659
|
+
> from /usr/lib/ruby/gems/1.8/gems/mogilefs-client-1.2.1/lib/mogilefs/backend.rb:108:in `do_request'
|
3660
|
+
> from /usr/lib/ruby/gems/1.8/gems/mogilefs-client-1.2.1/lib/mogilefs/backend.rb:16:in `create_open'
|
3661
|
+
> from /usr/lib/ruby/gems/1.8/gems/mogilefs-client-1.2.1/lib/mogilefs/mogilefs.rb:108:in `new_file'
|
3662
|
+
> from /usr/lib/ruby/gems/1.8/gems/mogilefs-client-1.2.1/lib/mogilefs/mogilefs.rb:163:in `store_content'
|
3663
|
+
> from ./script/../config/../config/../app/models/mogile_backed.rb:59:in `store_in_mogile'
|
3664
|
+
> from ./script/../config/../config/../app/models/image.rb:139:in `data'
|
3665
|
+
> from ./script/../config/../config/../app/models/mogile_backed.rb:59:in `store_in_mogile'
|
3666
|
+
> from (irb):15
|
3667
|
+
> from (irb):15
|
3668
|
+
>
|
3669
|
+
> The problem is that, if you code catches this error and carries
|
3670
|
+
> on using the same client object for a subsequent request, the
|
3671
|
+
> 'OK' response which we timed out waiting for, will eventually
|
3672
|
+
> arrive, and sit in the socket's read buffer. It will then be
|
3673
|
+
> read and treated as the response to some unconnected subsequent
|
3674
|
+
> command, resulting in a variety of seemingly intermittent and
|
3675
|
+
> confusing errors.
|
3676
|
+
>
|
3677
|
+
> I've attached a patch for this against 1.2.1, which simply
|
3678
|
+
> closes the socket whenever it times out waiting for a reponse.
|
3679
|
+
> The next request will then open a new socket as required.
|
3680
|
+
>
|
3681
|
+
> Also included a quick fix/improvement to error reporting in one
|
3682
|
+
> case, which helped me to track the problem down.
|
3683
|
+
|
3684
|
+
commit b0b702171b01e391d9fe29eb4374d971c2f5bc83
|
3685
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
3686
|
+
Date: Wed Sep 3 15:05:56 2008 -0700
|
3687
|
+
|
3688
|
+
merge large file patch from Andy La Foe
|
3689
|
+
|
3690
|
+
Merging involved "Content-length" => "Content-Length"
|
3691
|
+
capitalizing 'L' as per p4#3627 (aka SVN r433)
|
3692
|
+
|
3693
|
+
Ref: http://rubyforge.org/tracker/index.php?func=detail&aid=13764&group_id=1513&atid=5923
|
3694
|
+
> Submitted By: Andy Lo-A-Foe (arloafoe)
|
3695
|
+
> Category: mogilefs-client
|
3696
|
+
> Summary:
|
3697
|
+
> Store very large files (> 256M) without running out of memory in store_file
|
3698
|
+
>
|
3699
|
+
> Detailed description
|
3700
|
+
>
|
3701
|
+
> This is a patch to the MogileFS::store_file mechanism in order to
|
3702
|
+
> support very large filee stores using HTTPFile. We sometimes have to
|
3703
|
+
> store files of up to 1GB in size. Using chunking is not really an option
|
3704
|
+
> since it has proven to be very unreliable (mogtool) and there is no
|
3705
|
+
> support for it in the current version of this client. This patch
|
3706
|
+
> basically reads 16M chunks at a time and writes them to the tracker
|
3707
|
+
> socket instead of trying to stuff the while file in the StringIO and
|
3708
|
+
> running out of memory. It's probably very rough and the get_file_data
|
3709
|
+
> symmetry patch is not there yet. Feedback appreciated.
|
3710
|
+
|
3711
|
+
commit 2c1c7312f96fd2688366c5637e749c668c0dceb7
|
3712
|
+
Author: zenspider <zenspider@d2e05cf2-00e0-46e5-a3de-bbee4d6b9404>
|
3713
|
+
Date: Fri Mar 21 22:22:07 2008 +0000
|
3714
|
+
|
3715
|
+
Credit for bug report.
|
3716
|
+
|
3717
|
+
From p4 revision #3630
|
3718
|
+
|
3719
|
+
git-svn-id: http://seattlerb.rubyforge.org/svn/mogilefs-client/dev@434 d2e05cf2-00e0-46e5-a3de-bbee4d6b9404
|
3720
|
+
|
3721
|
+
commit 5432c0e4d6b05bcc49c3a7c48eeff11f657beeca
|
3722
|
+
Author: zenspider <zenspider@d2e05cf2-00e0-46e5-a3de-bbee4d6b9404>
|
3723
|
+
Date: Fri Mar 21 22:22:00 2008 +0000
|
3724
|
+
|
3725
|
+
Fixed MogileFS#rename.
|
3726
|
+
Removed infinite loop in MogileFS::HTTPFile#store_file.
|
3727
|
+
Made MogileFS#get_file_data timeout configurable.
|
3728
|
+
Add MogileFS#size.
|
3729
|
+
|
3730
|
+
From p4 revision #3627
|
3731
|
+
|
3732
|
+
git-svn-id: http://seattlerb.rubyforge.org/svn/mogilefs-client/dev@433 d2e05cf2-00e0-46e5-a3de-bbee4d6b9404
|
3733
|
+
|
3734
|
+
commit e20f64cd7ba2deb249b9b51ce9154ba5337ddf08
|
3735
|
+
Author: zenspider <zenspider@d2e05cf2-00e0-46e5-a3de-bbee4d6b9404>
|
3736
|
+
Date: Fri Mar 21 22:15:07 2008 +0000
|
3737
|
+
|
3738
|
+
Fixed bug #7273 in HTTP mode of client where data would not get returned. Submitted by Matthew Willson.
|
3739
|
+
|
3740
|
+
From p4 revision #3337
|
3741
|
+
|
3742
|
+
git-svn-id: http://seattlerb.rubyforge.org/svn/mogilefs-client/dev@377 d2e05cf2-00e0-46e5-a3de-bbee4d6b9404
|
3743
|
+
|
3744
|
+
commit d7aba2f7ca1c1282b5c9afaabe2082b4d1a85170
|
3745
|
+
Author: zenspider <zenspider@d2e05cf2-00e0-46e5-a3de-bbee4d6b9404>
|
3746
|
+
Date: Fri Mar 21 22:15:02 2008 +0000
|
3747
|
+
|
3748
|
+
Import mogilefs-client converted to Hoe.
|
3749
|
+
|
3750
|
+
From p4 revision #3336
|
3751
|
+
|
3752
|
+
git-svn-id: http://seattlerb.rubyforge.org/svn/mogilefs-client/dev@376 d2e05cf2-00e0-46e5-a3de-bbee4d6b9404
|