[sheepdog] [PATCH v5 1/2] lib: move sockfd cache from sheep to lib

Hitoshi Mitake mitake.hitoshi at gmail.com
Tue Jul 30 04:13:04 CEST 2013


At Mon, 29 Jul 2013 16:40:40 +0800,
Liu Yuan wrote:
> 
> On Sat, Jul 27, 2013 at 10:57:34PM +0900, Hitoshi Mitake wrote:
> > From: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > 
> > On some subcommands, collie also issues lots of request to sheeps. So
> > collie can enjoy sockfd caching. For this purpose, this patch moves
> > sockfd from sheep to lib and generalize the interfaces of sockfd.
> > 
> > This patch doesn't change anything related to IO NIC in sockfd
> > cache. Because collie can know address and port of IO NIC so
> > potentially use them.
> > 
> > Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > ---
> > 
> > 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. do_sockfd_cache_{get, put}() ->
> >    sockfd_cache_{get, put}_long()
> > 
> >  include/Makefile.am           |    3 +-
> >  include/internal_proto.h      |    2 +
> >  include/sockfd_cache.h        |   23 ++
> >  lib/Makefile.am               |    2 +-
> >  {sheep => lib}/sockfd_cache.c |  157 +++++--------
> >  sheep/gateway.c               |   10 +-
> >  sheep/group.c                 |    2 +-
> >  sheep/sheep.c                 |    9 +-
> >  sheep/sheep_priv.h            |   12 +-
> >  sheep/sockfd_cache.c          |  509 +----------------------------------------
> >  10 files changed, 108 insertions(+), 621 deletions(-)
> >  create mode 100644 include/sockfd_cache.h
> >  copy {sheep => lib}/sockfd_cache.c (83%)
> > 
> > diff --git a/include/Makefile.am b/include/Makefile.am
> > index 0acb76e..4d0c229 100644
> > --- a/include/Makefile.am
> > +++ b/include/Makefile.am
> > @@ -2,4 +2,5 @@ MAINTAINERCLEANFILES    = Makefile.in config.h.in
> >  
> >  noinst_HEADERS          = bitops.h event.h logger.h sheepdog_proto.h util.h \
> >  			  list.h net.h sheep.h exits.h strbuf.h rbtree.h \
> > -			  sha1.h option.h internal_proto.h shepherd.h work.h
> > +			  sha1.h option.h internal_proto.h shepherd.h work.h \
> > +			  sockfd_cache.h
> > diff --git a/include/internal_proto.h b/include/internal_proto.h
> > index 0463eae..0061007 100644
> > --- a/include/internal_proto.h
> > +++ b/include/internal_proto.h
> > @@ -20,6 +20,8 @@
> >  #include <stdint.h>
> >  #include <netinet/in.h>
> >  
> > +#include "sheepdog_proto.h"
> > +
> >  #define SD_SHEEP_PROTO_VER 0x08
> >  
> >  #define SD_DEFAULT_COPIES 3
> > diff --git a/include/sockfd_cache.h b/include/sockfd_cache.h
> > new file mode 100644
> > index 0000000..a724cdd
> > --- /dev/null
> > +++ b/include/sockfd_cache.h
> > @@ -0,0 +1,23 @@
> > +#ifndef SOCKFD_CACHE_H
> > +#define SOCKFD_CACHE_H
> > +
> > +#include "internal_proto.h"
> > +#include "work.h"
> > +
> > +struct sockfd *sockfd_cache_get(const struct node_id *nid);
> > +void do_sockfd_cache_put(const struct node_id *nid, int idx);
> 
> Forget to remove it?

Sorry and thanks for your pointing... I'll remove it in the next
version.

Thanks,
Hitoshi



More information about the sheepdog mailing list