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. 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? We're looking at tools like memcache, beaker, varnish, etc. Has anyone already started down this road already? Any insights to share? Opinions? (summit talk?) What are Glance, Swift, Keystone (lite?) doing? -S _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : [email protected] Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp

