# \[ANN\] mogilefs-client 3.0.0-rc1 released

**URL:** <https://rubytalk.org/t/ann-mogilefs-client-3-0-0-rc1-released/64183>\
**Category:** ruby-talk\
**Created:** [21 November 2011 03:01 UTC](https://rubytalk.org/t/ann-mogilefs-client-3-0-0-rc1-released/64183 "2011-11-21T03:01:25Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eric\_Wong2](https://avatars.discourse-cdn.com/v4/letter/e/b9e5f3/32.png) [@Eric\_Wong2](https://rubytalk.org/u/Eric_Wong2)\
**Post date:** [21 November 2011 03:01 UTC](https://rubytalk.org/t/ann-mogilefs-client-3-0-0-rc1-released/64183/1 "2011-11-21T03:01:25Z")

</div>

A MogileFS client library for Ruby. MogileFS is an open source  
distributed filesystem, see: [http://mogilefs.org](http://mogilefs.org) for more details. This  
library allows any Ruby application to read, write and delete files in a  
MogileFS instance.

To install this prerelease: gem install --pre mogilefs-client

mogilefs :: [http://mogilefs.org/](http://mogilefs.org/)  
list :: [mailto:mogile@googlegroups.com](mailto:mogile@googlegroups.com)  
email :: [mailto:normalperson@yhbt.net](mailto:normalperson@yhbt.net)  
repo :: git://bogomips.org/mogilefs-client.git  
cgit :: [http://bogomips.org/mogilefs-client.git](http://bogomips.org/mogilefs-client.git)  
gitweb :: [http://repo.or.cz/w/ruby-mogilefs-client.git](http://repo.or.cz/w/ruby-mogilefs-client.git)

There's a fair amount of internal changes and cleanups, but  
most user-visible things should be relatively untouched.

=== client changes

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

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

\* new commands: "file\_debug" and "file\_info" (new commands  
&nbsp;&nbsp;in mogilefsd, be sure you have the latest version)

\* "get\_paths" takes optional ":pathcount" parameter  
&nbsp;&nbsp;to control the number of returned paths.

\* "get\_file\_data" supports offset and count for partial  
&nbsp;&nbsp;transfer (requires support from storage node for  
&nbsp;&nbsp;Range: requests, most HTTP servers are capable of this)

\* IO.copy\_stream is enabled by default under Ruby 1.9.3.  
&nbsp;&nbsp;Expect performance improvements.

\* "list\_keys" with a passed block (for additional info) is  
&nbsp;&nbsp;faster due to internal pipelining implementation and the  
&nbsp;&nbsp;addition of "file\_info" support.

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

\* rare, truncated partial responses due to network/server  
&nbsp;&nbsp;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  
&nbsp;&nbsp;in MogileFS 2.x

\* admin commands should convert all numeric fields to either  
&nbsp;&nbsp;Integer or Float objects and not String representations  
&nbsp;&nbsp;of numerics. Affected methods include:  
&nbsp;&nbsp;&nbsp;get\_hosts, get\_devices, list\_fids, each\_fids, get\_domains

=== miscellany

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

\* {kgio}[[http://bogomips.org/kgio](http://bogomips.org/kgio)] automatically used  
&nbsp;&nbsp;if available, but not required to avoid exceptions  
&nbsp;&nbsp;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,  
&nbsp;&nbsp;see "git log" for details

\* Added internal pipelining implementation, this is  
&nbsp;&nbsp;not easy-to-use since the server can respond-out-of-order,  
&nbsp;&nbsp;but still useful for things like a list\_keys+file\_info  
&nbsp;&nbsp;loop.

Feedback (bug reports, user/development dicussion, patches, pull  
requests) are greatly appreciated and handled via email. We currently  
piggy-back onto the public MogileFS  
{mailing list}[[mailto:mogile@googlegroups.com](mailto:mogile@googlegroups.com)] for feedback.

If you do not want to deal with the corporate host of the MogileFS  
mailing list, or if you wish to keep your issue secret, feel free to  
email {Eric Wong at}[[mailto:normalperson@yhbt.net](mailto:normalperson@yhbt.net)].

Do not expect Eric Wong to read HTML mail under any circumstances.

> **···**
>
> --  
> Eric Wong
