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

Liu Yuan namei.unix at gmail.com
Sun Dec 25 16:42:46 CET 2011


changes v4:
 - support automatic removal of stale object
 - refine the doc
 - test IO perf
 - drop slab implementation, use glibc malloc/free

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 recovery

 - auto checksumed snapshot objects

 - no stale objects that are found in Simple Store implementation, that will
waste storage a lot.

   You can access the patches from farm branch at git://github.com/liuy/sheepdog-yuan.git

todos:
 - consolidate snapshot feature.
 - more enchancements.

Thanks,
Yuan

Liu Yuan (12):
      sheep: hide some minor store layout aware operations
      sheep: modify the Makefile.am to run farm.
      farm: add sha1_file operations
      farm: add trunk object
      farm: remove stale object in backend store
      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    |  121 ++++++++++
 include/sheep.h          |    5 +-
 include/sheepdog_proto.h |    1 +
 sheep/Makefile.am        |    6 +-
 sheep/farm.h             |   85 +++++++
 sheep/farm/farm.c        |  559 ++++++++++++++++++++++++++++++++++++++++++++++
 sheep/farm/sha1_file.c   |  269 ++++++++++++++++++++++
 sheep/farm/snap.c        |  152 +++++++++++++
 sheep/farm/trunk.c       |  339 ++++++++++++++++++++++++++++
 sheep/ops.c              |   59 +++++
 sheep/sheep_priv.h       |    8 +-
 sheep/store.c            |   71 +++++--
 14 files changed, 1812 insertions(+), 24 deletions(-)



More information about the sheepdog mailing list