The future is now :> Pushed out 0.1.0 with HTTP and kqueue support
http://bogomips.org/cmogstored/files/cmogstored-0.1.0.tar.gz
SHA1 5b4dd9f5559a70c140d36fa9c54c7b4db48aa025
cmogstored now supports enough HTTP to support MogileFS entirely. If
you're willing to live on the bleeding edge, a single executable is now
all that's needed to run a MogileFS storage node.
HTTP features supported include pipelining, persistent connections,
chunked PUT, partial PUT, partial GET, and Content-MD5 handling.
Graceful shutdown/hot upgrades is not supported yet, so it's recommended
you mark storage nodes "down" with mogadm before shutting down/upgrading
cmogstored (you should probably do that regardless).
While GNU/Linux systems with epoll+NPTL remain the platform of choice,
this release is also tested on FreeBSD 9.0 and Debian GNU/kFreeBSD 6.0.
FreeBSD 8.x and other *BSDs are likely to work, too.
There were no fatal bugs found in 0.0.0, but this release (with HTTP
support) is much more complex, so there may still be fatal bugs in
it.
> I've just noticed shutdown is sometimes broken while the server is
> busy, so it still needs work :>
Should be fixed. Clients still get disconnected if a request is
being serviced, though :<
> I'll also get this added to the wiki + freshm^Wfreecode soonish.
Ugh, one day...
> Eric Wong hates pretty things, so this README file is also the homepage:
> http://bogomips.org/cmogstored/README
> [1] - http://bogomips.org/cmogstored/queues.txt
> hopefully I can get the HTTP part ready for benchmarking :)
It seems to be in the same ballpark as other C-only servers for
low-latency read requests that hit kernel caches.
It's hard to reliably reproduce requests at accessing random, uncached
files. I expect cmogstored to fare better (compared to existing
servers) in uncached scenarios (given a typical MogileFS storage node
probably having a 1:1000 ratio of RAM to filesystem capacity)
Overall, I'm very happy with the design/architecture of the whole thing.
Implementation details can definitely be improved, but that can happen
later.