changes v2: - add a doc - let farm_link write atomically "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. - 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. - test slab is really needed. - better commit descriptions. Thanks, Yuan Liu Yuan (10): 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 farm: add a documentation for farm internals doc/farm-internal.txt | 95 +++++++++++ sheep/Makefile.am | 8 +- sheep/farm.h | 84 ++++++++++ sheep/farm/farm.c | 417 ++++++++++++++++++++++++++++++++++++++++++++++++ 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 ++++++--- 12 files changed, 1492 insertions(+), 22 deletions(-) |