Connections on the varnishbox
phk at phk.freebsd.dk
Fri Oct 26 15:58:24 CEST 2007
In message <ujrabq66r5l.fsf at false.linpro.no>, =?iso-8859-1?Q?Dag-Erling_Sm=F8rg
>"Poul-Henning Kamp" <phk at phk.freebsd.dk> writes:
>> In retrospect, I am not convinced that idea/implementation of
>> multiple thread pools is sufficiently sound. Its one area that
>> we will have to impove somehow.
>> Under no circumstances should more than a few pools (< 5) be created.
>Why do we have a complex setup with pools, workers within pools etc.?
The idea was to reduce lock contention on the pool mutex.
>If we just used the socket descriptor as a direct index into an array
>of workers, no locking would be necessary since the descriptor itself
>would act as a semaphore.
The majority of time the descriptor is idle, and your proposal essentially
parks one thread per descriptor, so if we did that, a lot of code could
be simplified, but at a massive expansion in the number of threads and
a drastic reduction in CPU cache efficiency.
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the varnish-misc