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

Liu Yuan namei.unix at gmail.com
Fri Dec 23 15:39:18 CET 2011


changes v3:
 - add basic cluster-wide snapshot support
 - farm.c clean up and refactoring

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 cluster restore snapshot' to restore fully to the state of
customized snapshots.

 - 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:
 - solidate snapshot feature.
 - more enchancements.
 - test slab is really needed.
 - better commit descriptions.

Thanks,
Yuan

Liu Yuan (12):
      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
      sheep: add cluster snapshot/restore support
      collie: enable cluster-wide snapshot command

 collie/cluster.c         |  159 +++++++++++++
 collie/collie.c          |    2 +
 doc/farm-internal.txt    |   95 ++++++++
 include/sheep.h          |    5 +-
 include/sheepdog_proto.h |    1 +
 sheep/Makefile.am        |    8 +-
 sheep/farm.h             |   84 +++++++
 sheep/farm/farm.c        |  559 ++++++++++++++++++++++++++++++++++++++++++++++
 sheep/farm/sha1_file.c   |  220 ++++++++++++++++++
 sheep/farm/snap.c        |  152 +++++++++++++
 sheep/farm/trunk.c       |  205 +++++++++++++++++
 sheep/group.c            |    2 +
 sheep/ops.c              |   59 +++++
 sheep/sheep.c            |    2 +
 sheep/sheep_priv.h       |    8 +-
 sheep/slabs.c            |  239 ++++++++++++++++++++
 sheep/slabs.h            |   21 ++
 sheep/store.c            |   71 +++++--
 18 files changed, 1867 insertions(+), 25 deletions(-)




More information about the sheepdog mailing list