On Wed, 23 Feb 2011, Colin McCabe wrote: > Yeah, should add something like that. Maybe something like this: > > int rados_pool_list(rados_t cluster, char ***pools) > void rados_pool_list_free(char **pools) > > Also should rename > rados_snap_set_read -> rados_snap_set_read_context for consistency. Well, on the read side, it's not actually a context. You just need to specify a snapid. On the write side, the context tells the OSDs which snapshots to keep/cow when doing a write. You can't write to a snapshot. I'm not sure the details are relevant to API users, but at the very least I don't think there is a clear symmetry between the read/write side to make the calls look consistent. This way it's clear they're not... Also, > >> int rados_write(rados_pool_t pool, const char *oid, off_t off, const > >> char *buf, size_t len); > >> int rados_write_full(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_aio_write(rados_pool_t pool, const char *oid, > >> off_t off, const char *buf, size_t len, > >> rados_completion_t completion); > >> int rados_aio_write_full(rados_pool_t pool, const char *oid, > >> off_t off, const char *buf, size_t len, > >> rados_completion_t completion); > >> int rados_aio_read(rados_pool_t pool, const char *oid, > >> off_t off, char *buf, size_t len, > >> rados_completion_t completion); The argument order for these is weird... not quite sure what I was thinking. Let's do whatever pread and pwrite do? sage