[sheepdog] [PATCH v4 00/10] use hash for vdi check and object recovery

MORITA Kazutaka morita.kazutaka at gmail.com
Tue May 14 09:00:09 CEST 2013


From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>

v4:
 - add missing put_vnode_info()
 - fix work_queue_wait() so that it can surely wait all the works
   completed.

v3:
 - fix missing assignment of create_cb and destroy_cb
 - drop "work: try to create worker threads in
   worker_thread_request_done", and add "work: initialize nr_nodes in
   init_work_queue()" instead

v2:
 - use work queue for vdi check
 - refine parameters of recover_object_from()

On my environment with 16 nodes, this series makes the 'collie vdi
check' performance more than 50 times faster.  The number would be
better if we use more nodes for sheepdog.

The first 6 patches are in preparation for using the work queue in
collie.


MORITA Kazutaka (10):
  work: move some globals into work.c
  work: rename init_wqueue_eventfd and init_work_queue
  work: remove sheep_priv.h and trace.h from include files
  move work queue codes from sheep to lib
  work: initialize nr_nodes in init_work_queue()
  collie: add a function to wait for all the running works
  sheep: add operation to get object sha1 digest
  collie: use hash for collie check
  tests: fix vdi check output
  sheep: recover from local when target node has same content

 collie/Makefile.am       |    2 +-
 collie/collie.c          |   15 ++++
 collie/collie.h          |    3 +
 collie/common.c          |   13 ++++
 collie/vdi.c             |  195 +++++++++++++++++++++++++++++++++++++---------
 include/Makefile.am      |    2 +-
 include/internal_proto.h |    1 +
 include/sha1.h           |    1 +
 include/sheepdog_proto.h |    5 ++
 include/work.h           |   65 ++++++++++++++++
 lib/Makefile.am          |    2 +-
 lib/sha1.c               |   15 ++++
 {sheep => lib}/work.c    |   83 ++++++++++++++------
 sheep/Makefile.am        |    4 +-
 sheep/farm/farm.c        |    1 +
 sheep/farm/farm.h        |    1 -
 sheep/farm/sha1_file.c   |   15 ----
 sheep/ops.c              |   18 +++++
 sheep/plain_store.c      |   41 ++++++++++
 sheep/recovery.c         |  139 ++++++++++++++++++++-------------
 sheep/sheep.c            |   39 +++++++---
 sheep/sheep_priv.h       |   28 +------
 sheep/trace/trace.h      |    1 -
 sheep/work.h             |   59 --------------
 tests/048                |    2 +-
 tests/048.out            |    2 +-
 tests/052                |    2 +-
 tests/052.out            |    2 +-
 28 files changed, 520 insertions(+), 236 deletions(-)
 create mode 100644 include/work.h
 rename {sheep => lib}/work.c (80%)
 delete mode 100644 sheep/work.h

-- 
1.7.9.5




More information about the sheepdog mailing list