Ruby mogilefs-client 3.0.0
Ruby mogilefs-client 3.0.0

Changes since 3.0.0-rc1:

* 1.8 copy_stream emulator respects creation umask
  This matches the latest IO.copy_stream behavior.
  [ruby-core:41308], r33851 in ruby/trunk

* higher timeouts for uploads to compensate for slow
  (but not dead) servers.

Changes since v2.2.0:

=== client changes

* "store_file" now accepts any IO object capable of streaming
  data (e.g. pipes and sockets).   This uses chunked
  Transfer-Encoding for PUTs, so backend storage nodes
  will need to support this (latest mogstored does).

* "store_file" no longer uses an infinite timeout when
  awaiting a response after a PUT, the new timeout for the
  response is now calculated based on the time and size of
  the PUT request.

* new commands: "file_debug" and "file_info" (new commands
  in mogilefsd, be sure you have the latest version)

* "get_paths" takes optional ":pathcount" parameter
  to control the number of returned paths.

* "get_file_data" supports offset and count for partial
  transfer (requires support from storage node for
  Range: requests, most HTTP servers are capable of this)

* IO.copy_stream is enabled by default under Ruby 1.9.3.
  Expect performance improvements.

* "list_keys" with a passed block (for additional info) is
  faster due to internal pipelining implementation and the
  addition of "file_info" support.

* fixed handling of "+" in key/domain names (old bug)

* rare, truncated partial responses due to network/server
  failure now raise MogileFS::InvalidResponseError

=== admin changes

Admin support is still a work-in-progress,
I usually just find myself using "mogadm" anyways.

* new admin commands: "replicate_now"

* "get_stats" no longer works on new mogilefsd versions

* get_domains handles "repl_policy" field correctly for classes
  in MogileFS 2.x

* admin commands should convert all numeric fields to either
  Integer or Float objects and not String representations
  of numerics.  Affected methods include:
   get_hosts, get_devices, list_fids, each_fids, get_domains

=== miscellany

* we no longer add methods to standard Ruby classes
  (at least we never /changed/ existing methods :P)

* {kgio}[http://bogomips.org/kgio] automatically used
  if available, but not required to avoid exceptions
  with non-blocking I/O

* dropped Ruby 1.8.6 support, 1.8.7 or later is required.

* Tested with MRI 1.8.7, 1.9.3 and Rubinius 1.2.4

* MogileFS::Mysql - deprecated, to be removed in 2012

* improved test suite

* some optional experimental features/changes,
  see "git log" for details

* Added internal pipelining implementation, this is
  not easy-to-use since the server can respond-out-of-order,
  but still useful for things like a list_keys+file_info
  loop.

drasch/mogilefs-client