"farm" is suppoed be merged for .4.0, the new kv-store which will support - cluster wide snapshot. (both customized time and at the point of epoch change) - node-wide data sharing for snapshot objects with the same content. so snapshoting is very cheap operation. - support 'collie checkout epoch' to restore fully to the state of history epoch and customized time. - differential data change between subsequent epoches (for faster nested recovery, that node failure happens at recovery stage) - auto checksumed snapshot objects - no stale objects that are found in current implementation, that will waste storage a lot. You can access the patches from farm branch at git://github.com/liuy/sheepdog-yuan.git todos: - implement snapshot feature. - more enchancements. - add a doc for farm internls for dev. - test slab is really needed. - better commit descriptions. Liu Yuan (9): sheep: hide some minor store layout aware operations sheep: modify the Makefile.am to run farm. sheep: add a slab allocator farm: add sha1_file operations farm: add trunk object farm: add snapshot object sheep: add begin_recover() hook to store. sheep: add end_recover() hook to store. farm: the farm impelmentation proper sheep/Makefile.am | 8 +- sheep/farm.h | 84 ++++++++++ sheep/farm/farm.c | 425 ++++++++++++++++++++++++++++++++++++++++++++++++ sheep/farm/sha1_file.c | 220 +++++++++++++++++++++++++ sheep/farm/snap.c | 151 +++++++++++++++++ sheep/farm/trunk.c | 205 +++++++++++++++++++++++ sheep/sheep.c | 2 + sheep/sheep_priv.h | 2 + sheep/slabs.c | 239 +++++++++++++++++++++++++++ sheep/slabs.h | 21 +++ sheep/store.c | 70 ++++++-- 11 files changed, 1405 insertions(+), 22 deletions(-) Thanks, Yuan |