On Mon, 14 Aug 2006, Francis Cianfrocca wrote: > On 8/13/06, Jon Smirl <jonsmirl / gmail.com> wrote: >> You are rebuilding many of the features of git. >> http://git.or.cz/index.html > > > Write-once/read-many is the optimization profile for archival storage, > but not for a persistent session cache. You're proving yet again that A persistent session cache was actually my original motivation when I started working on the code. IOWA's default way of managing sessions is via a cache. For a busy server, this obviously imposes some memory constraints on just how many sessions or for just how long one can keep sessions around. So I created a bilevel cache that uses an in-memory LRU cache for the L1 cache, and when an element is expired from the L1 cache, it is inserted into the L2 cache. If the L2 cache is a persistent store, then that session can be retrieved again when required. By making that persistent store itself an LRU cache, I can still let it self manage its ultimate size or the ultimate age of elements within it, I maintain reasonably fast access to elements that have gone out to the persistent store, I can potentially do things like have the server flush it's L1 cache to L2 and shut down. When it's started again all of the sessions which were available when it was shut down are still available. Etc.... Kirk Haines