Date | Commit message (Collapse) |
|
|
|
Using unknown sizes with StoreContent is now supported
(but you're probably better off using a pipe or just
and object that acts like an IO)
|
|
There's only one place where we close the socket
|
|
The readpartial is not in the Rack spec for rack.input
objects, but something like IO#read is.
|
|
Of course the backend server needs to support chunking,
but the latest Perlbal does.
|
|
We'll need to setup a fresh MogileFS instance for some tests.
|
|
We'll also be testing some admin commands in there.
|
|
This retains backwards compatibility and users of MogileFS 2.x
to change replpolicy along with mindevcount.
|
|
|
|
Not some random hash from the parser.
|
|
We'll need to evaluate dropping support for older MogileFS.
They probably didn't have replpolicy back in the day.
|
|
We need to test deprecated behavior to not break
expectations for large, archived files in the future.
|
|
|
|
|
|
|
|
This can be useful for streaming to a backend
(this feature needs tests)
|
|
Avoid deepening stack depth and make it easier to migrate
fully to 1.9 in the future (dropping 1.8 support).
|
|
Otherwise IO#gets and MogileFS::Socket#timed_gets could
return a truncated response before EOF and we would never
know the response was truncated.
|
|
|
|
Should be easier to read this way
|
|
Splitting calls to backend.create_open + create_close between
files is also extremely confusing and error-prone.
Hopefully nobody actually depends on some attributes
we've removed.
|
|
This is cleaner and replaces redundant code where we would retry
paths. MogileFS::MogileFS#size now raises on error instead of
returning nil.
|
|
It's only used internally by the deprecated bigfile
implementation, and we don't even need it for that.
|
|
We don't want our users to rely on them
|
|
|
|
It's no longer used anywhere
|
|
We're trying to use as much as we can from Ruby 1.9
|
|
|
|
We can do this in a way that's compatible with IO.copy_stream
|
|
mogilefsd may not like that
|
|
|
|
syswrloop and it's filter arg is going away, but we're
stuck supporting bigfiles in read-only mode for eternity.
|
|
No more mucking with existing Ruby classes \o/
|
|
It's no longer used
|
|
This will need further refactoring
|
|
|
|
Since Sockets default to IO#sync=true, IO#write is
just like syswrite_full and there's no reason to
continue using it.
|
|
This is easier-to-read and more correct. This is not available
in 1.8.6, but we already broke 1.8.6 compatibility with
String#bytesize.
|
|
This should allow us to swap in kgio more easily.
|
|
More work towards _not_ monkey-patching core classes.
|
|
This needs to be less implementation detail-oriented
|
|
NFS support is gone
|
|
bogomips.org went on a URL diet earlier this year.
|
|
|
|
One tiny step in removing core class changes.
|
|
Ruby 1.9.2+ removes "." from $LOAD_PATH
|
|
= 2.2.0
* internal cleanups (no public API breakage)
* refactor backend socket/connection handling for reliability
There'll probably be more aggressive cleanups/refactoring in
future releases if I have time.
|
|
We now take steps to ensure the socket we wrote to is always the same as
the socket we'll read from. And if a read ever fails we'll close the
socket to avoid having responses. We've also switched from Socket#send
to IO#write as IO#write guarantees write-in-full behavior as long as the
socket is alive (MogileFS queries are small)
The public MogileFS::Backend#shutdown method is now thread-safe,
too.
|
|
The 3.x.x series will probably be incompatible with 2.x.x...
|
|
It's needless optimization on a LAN (most places where MogileFS
is deployed) and the extra method calls in Ruby seem to force
more overhead in to the application. So stop doing it.
|