openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #08977
Re: Caching strategies in Nova ...
On Mar 22, 2012, at 8:06 AM, Sandy Walsh wrote:
> o/
>
> Vek and myself are looking into caching strategies in and around Nova.
>
> There are essentially two approaches: in-process and external (proxy).
> The in-process schemes sit in with the python code while the external
> ones basically proxy the the HTTP requests.
We may need http caches as well in some cases, but we already use memcached in a few places, so I think we need internal caching as well.
>
> There are some obvious pro's and con's to each approach. The external is
> easier for operations to manage, but in-process allows us greater
> control over the caching (for things like caching db calls and not just
> HTTP calls). But, in-memory also means more code, more memory usage on
> the servers, monolithic services, limited to python based solutions,
> etc. In-process also gives us access to tools like Tach
> https://github.com/ohthree/tach for profiling performance.
>
> I see Jesse recently landed a branch that touches on the in-process
> approach:
> https://github.com/openstack/nova/commit/1bcf5f5431d3c9620596f5329d7654872235c7ee#nova/common/memorycache.py
>
> I don't know if people think putting caching code inside nova is a good
> or bad idea. If we do continue down this road, it would be nice to make
> it a little more modular/plug-in-based (YAPI .. yet another plug-in).
> Perhaps a hybrid solution is required?
openstack-common is where jesse was planning on putting memorycache
>
> We're looking at tools like memcache, beaker, varnish, etc.
>
I kind of like keeping our caching simple, just talking to something that is replicating the python-memcached api so that we can change out an in memory cache or actual memcached or db cache or etc...
This has a bit of promise:
http://code.google.com/p/python-cache/
Vish
References