<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Mar 22, 2012, at 8:06 AM, Sandy Walsh wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>o/<br><br>Vek and myself are looking into caching strategies in and around Nova.<br><br>There are essentially two approaches: in-process and external (proxy).<br>The in-process schemes sit in with the python code while the external<br>ones basically proxy the the HTTP requests.<br></div></blockquote><div><br></div>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.</div><div><br><blockquote type="cite"><div><br>There are some obvious pro's and con's to each approach. The external is<br>easier for operations to manage, but in-process allows us greater<br>control over the caching (for things like caching db calls and not just<br>HTTP calls). But, in-memory also means more code, more memory usage on<br>the servers, monolithic services, limited to python based solutions,<br>etc. In-process also gives us access to tools like Tach<br><a href="https://github.com/ohthree/tach">https://github.com/ohthree/tach</a> for profiling performance.<br><br>I see Jesse recently landed a branch that touches on the in-process<br>approach:<br><a href="https://github.com/openstack/nova/commit/1bcf5f5431d3c9620596f5329d7654872235c7ee#nova/common/memorycache.py">https://github.com/openstack/nova/commit/1bcf5f5431d3c9620596f5329d7654872235c7ee#nova/common/memorycache.py</a><br><br>I don't know if people think putting caching code inside nova is a good<br>or bad idea. If we do continue down this road, it would be nice to make<br>it a little more modular/plug-in-based (YAPI .. yet another plug-in).<br>Perhaps a hybrid solution is required?<br></div></blockquote><div><br></div></div><div>openstack-common is where jesse was planning on putting memorycache</div><div><br></div><div><blockquote type="cite"><div><br>We're looking at tools like memcache, beaker, varnish, etc.<br><br></div></blockquote><div><br></div>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...</div><div><br></div><div><br></div><div><div>This has a bit of promise:</div><div><br></div><div><a href="http://code.google.com/p/python-cache/">http://code.google.com/p/python-cache/</a></div><div><br></div><div>Vish</div></div><br></body></html>