Sander Striker wrote:
Hi,
This is my second go at the pools code. I incorporated some suggestions made by Brian Pane.
Please review,
Sander
PS. The debug code will come back, but in a different incarnation. I need some time to do that without making the code unreadable.
Thanks, I'll post some numbers once we have a chance to benchmark this.
Sander's pool code and my pool patch from yesterday use mostly the same strategy to reduce mutex contention within pools: * Support for thread-private free block lists * Support for tagging pools as single-threaded, to enable to pool internals to skip some locking operations
But Sander's code has one additional optimization that mine doesn't: * Dedicated mutexes for thread-private free block lists, rather than the one global mutex
This extra optimization might be a big win for the worker MPM, where having a lot of threads trying to lock the global mutex has been a performance problem.
BTW, I don't expect that either pool patch alone will eliminate the mutex overhead that plagues the worker MPM right now, but they might reduce the problem enough to make the performance "good enough" for Apache 2.0 GA. We can find out for sure with some benchmarks.
--Brian
