[sheepdog] [PATCH v2 0/5] work: implement a dynamically changing thread pool

MORITA Kazutaka morita.kazutaka at gmail.com
Thu Feb 28 11:46:17 CET 2013


This removes a short thread feature, and adds a worker thread pool
again with support of dymanic pool size.  The reasons we need this
series are:

 - Currently, sheep calls a pthread_create for every I/O request, but
   the overhead is not so cheap especially when the underlying disk is
   fast (e.g. the disk has non-volatile cache).

 - Some operations (e.g. object cache pusher) consumes too many
   threads and causes a problem.  To control the maximum number of
   threads, a thread pool model is better for us.


Changes from v1:
 - introduce a protection period for shrining work queue to avoid
   frequent creation/deletion of threads
 - rebase onto the latest master
 - some cleanups

MORITA Kazutaka (5):
  work: remove short thread
  logger: use LWP for worker idx
  work: remove unused codes
  work: glow the number of worker threads dynamically
  work: shrink the number of worker threads dynamically

 include/logger.h |    2 +-
 include/util.h   |    1 +
 lib/logger.c     |    5 +-
 lib/util.c       |    6 ++
 sheep/sheep.c    |   16 ++---
 sheep/work.c     |  179 ++++++++++++++++++++++++++----------------------------
 sheep/work.h     |   14 +++--
 7 files changed, 113 insertions(+), 110 deletions(-)

-- 
1.7.9.5




More information about the sheepdog mailing list