Hi, I'm starting to work on my SoC 2006 proposal [1] and I want to let you guys know how I will eventually proceed and what to expect. Your comments and suggestions are welcome.
- What I am trying to achieve ? A cache framework that features three layers of granularity: storage, protocol and provider. On arrival of a request (ie: http request), the protocol layer places filters into the protocol pipeline and decides whether or not this content should be cached. If so, it requests a a cache provider to the provider. The provider layer then mediates the and dispatches the data from the protocol modules to the various storage modules. The I/O operations are handled by the storage layer (storage modules) which retrieves and stores key/data pairs. - How I will proceed ? Initially, I will be refactoring the current mode cache code, without altering its behavior. There are "functions" (ie: cache_save_filter) taking more than 500 lines. I will separate those large functions into smaller functions without changing functionality at all, making the core more readable. This will also help me fully understand the structure of the cache code. (Separated patches). Further down the road, I want to rework the store_body|headers and recall_body|headers function into single store and recall functions, moving the http specific bits back to mod_cache and see and see how well it works (later, those bits will be consolidated in a branding "new" mod_cache_http - protocol layer). When I hit this point I'm going to send a new report. - Notes Don't expect much work on this in June, my semester is ending (tests.. oh my) and there is the World Soccer Cup (FIFA) which nearly stops the country (Brazil is expected to win its sixty championship). -- Davi Arnaut 1. Redesigning and extending the Apache cache architecture. http://verdesmares.com/Apache/proposal.txt