[openstack-dev] distibuted caching system in front of mysql server for openstack transactions

Jay Pipes jaypipes at gmail.com
Mon Oct 28 17:45:42 UTC 2013


On 10/28/2013 01:21 PM, Morgan Fainberg wrote:
> In light of what Dolph said with regards to Keystone, we are using
> dogpile.cache to implement memoization in front of our driver calls.
> It it has the ability to cache directly as well, but it has been
> effective (so far) for our use-case.
>
> That being said, I am unsure if caching in front of MySQL is really
> what we want.  I believe that we should be caching after processing
> work (hence memoization mechanism) instead of at the SQL layer.  This
> also means we can be measured in what we cache (oh hey, it makes no
> sense to cache X because it needs to be "real time" or there isn't a
> performance issue with that query / call, but Y does a ton of
> processing and is an expensive join/temptable query).  In my
> experience, unless the whole application is designed with caching in
> mind, caching something as broad as MySQL calls (or any SQL store) is
> likely going to net exactly what Shawn Hartsock stated, adding a
> second performance issue.

Quite right. In terms of Keystone specifics, I would argue that adding 
proper pagination (not done in the controller or worse, the client, 
instead done in the drivers that can handle it) would be of far greater 
performance benefit than cross-request caching.

-jay




More information about the OpenStack-dev mailing list