[sheepdog] [PATCH v2 05/10] work: try to create worker threads in worker_thread_request_done

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Tue May 14 06:18:02 CEST 2013


At Tue, 14 May 2013 12:33:55 +0900,
MORITA Kazutaka wrote:
> 
> At Tue, 14 May 2013 11:18:12 +0800,
> Liu Yuan wrote:
> > 
> > On 05/13/2013 11:11 PM, MORITA Kazutaka wrote:
> > > Currently, even if the number of nodes is increased, the dynamic work
> > > queue doesn't create worker threads until new work is added to the
> > > queue.  This tries to create threads just after the work queue detect
> > > that the cluster is expanded.
> > 
> > Why expanding at queue_work() isn't enough? Nodes are rarely added, so
> > most of the time, expanding at queue_work() works fine. It looks much
> > cleaner if we can reduce expanding call to one.
> 
> The reason I added this patch is that 'collie vdi check' calls all the
> queue_work() before setting nr_nodes in work_queue_request_done(), so
> there is no chance to extend the number of worker threads.  Maybe,
> initializing nr_nodes in init_work_queue() is much better than this
> patch.

After removing this patch, I got much better performace.
Now 'collie vdi check' works 75 times faster than the current master
on 16 nodes sheepdog cluster.

Thanks,

Kazutaka



More information about the sheepdog mailing list