[sheepdog] [PATCH v10 0/4] move sockfd to libsheepdog

Hitoshi Mitake mitake.hitoshi at lab.ntt.co.jp
Wed Jul 31 11:44:08 CEST 2013


We will make big changes in the near future:
1. Improve some subcommands of collie for more
   scalability. e.g. collie vdi list takes long time on a
   sheepdog cluster which consists many VDIs.

2. Let sheep and collie handle EMFILE gracefully. We will implement
   wrappers for functions which create new fd (e.g. xopen() for
   open()).

Before doing them, moving sockfd cache from sheep to libsheepdog is
required. This patchset does this moving and prepares for the above
changes.

v10:
 - recover correct result checking in node_recovery()
 - reorder previous 2nd and 4th for removing reversed dependency
 - let sockfd_cache_add() use free_cache_entry() for consistent

v9:
 - remove a redundant checking of workqueue initialization
 - remove an unnecessary check in free_cache_entry()
 - fix old comments
 - fix bugs in collie_exec_req() and its callers

v8:
 - fix an unsuitable error message of collie
 - rename sockfd_node_del() -> sockfd_cache_del_node() for consistent
   naming

v7:
 - fix a mistake in sockfd_cache_del() made by the previous patch
 - fix memory leaks during freeing sockfd_cache_entry

v6:
 - revive revalidate_node() because it is required for handling corner
   case of sheep and doesn't harm collie's behavior
 - trivial cleaning

v5:
 - make the workqueue for cachefd growth an internal thing in
   lib/sockfd_cache.c
 - remove revalidate_node(), because this relies on the assumption of
   sheep
 - better naming of functions
 - misc cleanings

v4:
 - remove the redundant function, collie_exec_req_nid()

v3:
 - rebase on the latest master

v2:
 - use git format-patch -C for detecting copy

Hitoshi Mitake (4):
  lib: move sockfd cache from sheep to lib
  collie: check an error during issuing request correctly
  lib: correct a way of freeing sockfd_cache_entry
  collie: let collie use sockfd cache

 collie/collie.c               |    6 +
 collie/common.c               |   24 +-
 collie/node.c                 |    6 +-
 include/Makefile.am           |    3 +-
 include/internal_proto.h      |    2 +
 include/sockfd_cache.h        |   22 ++
 lib/Makefile.am               |    2 +-
 {sheep => lib}/sockfd_cache.c |  131 +++++------
 sheep/gateway.c               |   10 +-
 sheep/group.c                 |    2 +-
 sheep/sheep.c                 |    9 +-
 sheep/sheep_priv.h            |   12 +-
 sheep/sockfd_cache.c          |  509 +----------------------------------------
 13 files changed, 131 insertions(+), 607 deletions(-)
 create mode 100644 include/sockfd_cache.h
 copy {sheep => lib}/sockfd_cache.c (88%)

-- 
1.7.10.4




More information about the sheepdog mailing list