On Nov 11, 2011, at 1:21 PM, Jeff Trawick wrote: > On Fri, Nov 11, 2011 at 1:02 PM, Jeff Trawick <traw...@gmail.com> wrote: >> 2011/11/11 Torsten Förtsch <torsten.foert...@gmx.net>: >>> On Friday, 11 November 2011 20:09:09 Jason Gionta wrote: >>>> While I expect the count to increment by one after each request. It >>>> seems like if there is a time gap between requests (over 10 seconds), >>>> the count gets reset (apr_hash_count = 0). >>> >>> May it be that your requests simply hit another worker process? >> >> That must be it. >> >> Jason, your code is going to run in different child processes as new >> client connections are accepted by different child processes. The >> children started off with the same empty hash inherited over fork(), >> and in different child processes it will have different contents, at >> least once a child handles its first connection. > > Also, note that in-memory caches served between child processes use > shared memory.
Check out mod_example_ipc.c in trunk and the new 2.4 branch. Note on that... should we port that to slotmem? S. > You can get a bit of mileage in the short term from configuring a > single-child-process configuration (worker or event MPM, > MaxClients==ThreadsPerChild) but that probably won't be viable > (different reasons why you want more child processes, don't want to > lose your cache if the child segfaults or you need to use > MaxRequestsPerChild, etc.).