[Sheepdog] [PATCH v5] add a new store named 'farm'
Liu Yuan
namei.unix at gmail.com
Fri Dec 30 14:06:55 CET 2011
changes v5:
- address Chirstoph Hellwig's comments. Thanks.
- check path length at the set-up
- error handling setxattr
- use sys/xattr.h
- rename __trunk_entry to trunk_entry_incore
- remove unnecessary warppers
- add comments in the files
- check ret of strtoull for ULLONG_MAX
- fix autoconfig as Dongsu Park suggests. Thanks.
- fix some farm operations in recovery stage
- support dynamic backend set when formatting
- transfer backend store for newly joined nodes.
- abstract out sys vdi bitmap set operation
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.
todos:
- consolidate snapshot feature.
- more enchancements.
Thanks,
Yuan
Liu Yuan (17):
sheep: hide some minor store layout aware operations
store: add dynamic mechanism to chain the available backend stores.
sheep: transfer store backend for newly joined node
sheep: modify the configures to run farm.
sheep: check object directory path at start-up
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
farm: add format() support
store: abstract VDI bitmap set-up
collie/cluster.c | 220 ++++++++++++++++-
collie/collie.c | 3 +
configure.ac | 18 ++
doc/farm-internal.txt | 121 +++++++++
include/sheep.h | 13 +-
include/sheepdog_proto.h | 3 +
sheep/Makefile.am | 8 +-
sheep/farm.h | 88 +++++++
sheep/farm/farm.c | 643 ++++++++++++++++++++++++++++++++++++++++++++++
sheep/farm/sha1_file.c | 298 +++++++++++++++++++++
sheep/farm/snap.c | 169 ++++++++++++
sheep/farm/trunk.c | 380 +++++++++++++++++++++++++++
sheep/group.c | 18 ++-
sheep/ops.c | 97 +++++++-
sheep/sheep_priv.h | 46 +++-
sheep/simple_store.c | 76 +++++-
sheep/store.c | 246 +++++++++++-------
17 files changed, 2328 insertions(+), 119 deletions(-)
More information about the sheepdog
mailing list