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


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to