[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