Hi, I've released v0.9:
* The mds exherts memory pressure on clients. This prevents clients from pinning too much memory on the server. * a few critical crush bugfixes * improved metadata to eventually aid in disaster recovery * kclient: fixed snap vs truncate bug * kclient: readdir fixes * osd recovery fixes * lots of bug fixes * initial version of librados The main item in this release, aside from the usual bug and performance fixes, is an initial version of librados, which defines a simple API for accessing RADOS, the distributed object storage layer of Ceph. It's this distributed object store ("cloud," if you prefer the buzzword of the day) that provides the reliable, scalable storage library that the Ceph file system relies on. (There's also a fancy MDS and client to build a POSIX file system on top of that.) The simple librados API goes something like this: int rados_open_pool(const char *name, rados_pool_t *pool); int rados_close_pool(rados_pool_t pool); (Pools are separate object namespaces, analogous to S3's buckets.) int rados_write(rados_pool_t pool, const char *oid, off_t off, const char *buf, size_t len); int rados_read(rados_pool_t pool, const char *oid, off_t off, char *buf, size_t len); int rados_remove(rados_pool_t pool, const char *oid); There's a similar API for doing async IO. RADOS also supports snapshots, taken with per-pool granularity. (There is infrastructure to allow finer granularity, but it requires the API user to do a lot of the work of coordination clients.) A command line tool ('rados') let's you do most of the basic operations: listing pools, usage stats, fetching and storing objects, listing objects, creating and removing snapshots, etc. The final item that makes rados interesting as a storage platform is the ability to dynamically load object 'classes' into the storage cluster that define new 'methods' to access or manipulate objects. Normally you can do simple things like read/write extent, truncate, remove, and append. With object classes, you can write new operations to do things like rotate or resize an image (say by linking in libjpeg), encrypt or decrypt a file (libcrypto), and make some other query or update to a structured object. Generally speaking, this allows for more efficient queries or updates by avoiding lots of data transfer over the network, especially for read/modify/write cycles. We're currently in the process, for example, of using this functionality for the MDS so that it can make directory updates without a full directory read/modify/write. We're currently ramping up the scale of our internal testing, working out scalability and reliablity bugs along the way. The main priorities for the next release are * refining the librados interface * repair -- recovery from data corruption bugs as we come across them * performance testing at scale * resolve pending btrfs performance, reliability issues Cheers- sage ------------------------------------------------------------------------------ Are you an open source citizen? Join us for the Open Source Bridge conference! Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250. Need another reason to go? 24-hour hacker lounge. Register today! http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org _______________________________________________ Ceph-devel mailing list Ceph-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ceph-devel