On Mon, Sep 17, 2001 at 04:07:06PM -0700, Brian Pane wrote:
> Aaron Bannert wrote:
>
> >After working with my two proposed worker MPM models, I've become more
> >confident in the simple model. I'll continue benchmarking both designs,
> >but I wanted to get this one out to fix what's in CVS right now, and
> >so I can provide some more tweaks I've been working on (turn the LIFO
> >queue to a FIFO, fix the scoreboard states, setconcurrency, etc...).
> >
> >Again, I've tested this patch extensively on solaris and linux with
> >favorable results.
> >
> >Patch description:
> >- Don't reuse transaction pools, instead create one for each new
> > connection request. This seems to incur less overhead than trying
> > to shuffle the pools around for reuse.
> >- Get rid of one of the fd_queue condition variables. We don't need
> > to wait on the queue if it's full, that means the caller didn't
> > allocate enough entries in the queue. This relieves some overhead
> > from signal/condition management.
> >
> Looks reasonable to me. I liked the more complicated "time-space tradeoff"
> design better because it's theoretically more scalable, but if the "short
> and sweet" design can outperform prefork in multiprocessor tests (e.g.,
> Ian's 8-CPU mstone benchmark) then I'm in favor of going with the simple
> approach.
I will continue to work on the more elaborate model, but for now this patch
is an incremental improvement to what we have in CVS (faster, much cleaner,
partial rollback to an older model). The LIFO patch is ready and waiting
for this to be commited. :)
-aaron