[Sheepdog] [RFC PATCH v2 0/10] add a new store named 'farm'

Liu Yuan namei.unix at gmail.com
Thu Dec 22 07:52:33 CET 2011


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(-)



More information about the sheepdog mailing list