[Sheepdog] [RFC PATCH] add a new store named 'farm'

Liu Yuan namei.unix at gmail.com
Wed Dec 21 10:17:32 CET 2011


   "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



More information about the sheepdog mailing list