[Sheepdog] [PATCH v6 0/17] add a new store named 'farm'
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Mon Feb 27 19:12:56 CET 2012
At Thu, 12 Jan 2012 21:37:11 +0800,
Liu Yuan wrote:
>
> Hi Kazum,
>
> I think the core of the patch set is stable, farm is ready to be
> merged.
>
> changes v6:
> - address Kazum's comments. Thanks!
> - remove compressed feature for sha1_file.
> - use global config to remember backend store.
> - sending name of store instread of index
> - fix a bug in restore operation.
> - use macros for patch check.
>
> 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.
>
> - practically the same performance as Simple Store.
> A simple qemu-io test on my laptop shows that
> write read
> farm 14.840 MB/s 11.211 MB/s
> simple 14.842 MB/s 11.245 MB/s
>
> You can access the patches from farm branch:
> $git checkout -b farm origin/farm
>
> 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 | 219 +++++++++++++++-
> collie/collie.c | 3 +
> configure.ac | 14 +
> doc/farm-internal.txt | 121 +++++++++
> include/sheep.h | 12 +-
> include/sheepdog_proto.h | 13 +
> sheep/Makefile.am | 8 +-
> sheep/farm/farm.c | 644 ++++++++++++++++++++++++++++++++++++++++++++++
> sheep/farm/farm.h | 79 ++++++
> sheep/farm/sha1_file.c | 259 +++++++++++++++++++
> sheep/farm/snap.c | 169 ++++++++++++
> sheep/farm/trunk.c | 380 +++++++++++++++++++++++++++
> sheep/group.c | 17 ++-
> sheep/ops.c | 97 +++++++-
> sheep/sheep_priv.h | 36 +++-
> sheep/simple_store.c | 76 +++++-
> sheep/store.c | 249 +++++++++++-------
> 17 files changed, 2273 insertions(+), 123 deletions(-)
Applied after fixing some coding style issues.
I think there are still some problems in this patchset, but
let's switch to a more incremental development instead of
sending a big patchset each time.
Thanks,
Kazutaka
More information about the sheepdog
mailing list