On Thu, 19 Jun 2003, Brad Nicholes wrote: > After taking a look at how the different MPMs are implemented, it > appears that almost all of the MPMs create a bucket allocator and a > transaction pool for each worker thread or process. The transaction > pool is cleared after each request but the bucket allocator is not > cleared or cleaned up until the worker thread or process goes away. Is > there a reason why the bucket allocator is never cleaned up?
Yes. Allocating memory for the bucket allocator takes time. The goal here is that we should reach after just a connection or two a steady-state of memory usage, with additional allocations (via malloc() I mean) being very infrequent. That said, there is a problem: the bucket_max_free() stuff /still/ isn't committed. Why not? Because I keep forgetting about it. I'm sure Jean-Jacques would cheer if I'd get around to it. :) It's on my schedule for the weekend. Once that's done, then the fact that the same bucket allocator is used will continue to be the benefit that it is without causing the potential problems of potential memory growth over time to which I believe you're alluding. Sound about right? --Cliff
