I've created 2 new cache backends for a project I'm working on.
The first is basically the memory backend, but limited in size to a certain number of records. The idea being that for a long running process you don't want a dict to grow completely unbounded. Expirations are least recently used is the first out.
The second is a wrapper that allows you to chain 2+ backends together. My use case is running it in combination with the above class to provide local memory lookup for many different processes running across many different hosts that all share the same memcache + mysql backend. In other words when we pull a value we check: local process memory -> shared memcache cluster -> finally expensive db query.
Another use case may be to bridge two memcache regions (1 local + 1 over wan for instance). Although admittedly, that idea is half baked. :)
I wanted to gauge if there was any interest in either or both of these things. If so, is it better as a pull request into dogpile.cache proper, or a separate project?