mogilefs-client 3.1.1 → 3.2.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|