← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1690756] Re: cache 'backend' argument description is ambiguous

 

This change affects keystone but I think it makes sense to only track
the fix against the oslo.cache library. There isn't much keystone can do
for this fix since the options are generated from oslo.cache and
rendered in the sample configuration file.

Improvement to the configuration option help text should positively
impact each project using oslo.cache and not just keystone.

Based on the existing help text, it appears that the thread count is the
determining factor of what to use. Morgan has some context around
oslo.cache and I'm following up with him to see if he had a specific
thread count in mind when he wrote that comment [0].

Would it be fair to update the comment with something along the lines
of:

- Use oslo_cache.memcache_pool for environments running more than X threads
- Use dogpile.cache.memcached for environments running less than X threads
- Use dogpile.cache.memory for environments isolated to a single process or thread (not recommended for production usage!)

[0]
https://github.com/openstack/oslo.cache/blob/67c023c0a7fad02608a4db69bf2c12d00cc8f109/oslo_cache/_opts.py#L32-L45

** Changed in: keystone
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1690756

Title:
  cache 'backend' argument description is ambiguous

Status in OpenStack Identity (keystone):
  Invalid
Status in oslo.cache:
  New

Bug description:
  The oslo.cache backend argument description currently states:

  "Dogpile.cache backend module. It is recommended that Memcache or
  Redis (dogpile.cache.redis) be used in production deployments. For
  eventlet-based or highly threaded servers, Memcache with pooling
  (oslo_cache.memcache_pool) is recommended. For low thread servers,
  dogpile.cache.memcached is recommended. Test environments with a
  single instance of the server can use the dogpile.cache.memory
  backend."

  So the dogpile.cache.memcached/dogpile.cache.redis backends should be
  used for production deployments, but the dogpile cache is recommended
  for low thread servers and the oslo_cache.memcache_pool should be used
  for high thread servers. I don't understand what the actual
  recommendation is here.

  For a production deployment of a service using uwsgi and a web server, what is the recommendation?
  For a production deployment of a service using uwsgi and no web server, what is the recommendation?
  For a production deployment of a service using eventlet, what is the recommendation?

  Using keystone as an example, the example config file has the same
  content which does not really help to clarify anything:

  https://github.com/openstack/keystone/blob/b7bd6e301964d393ac6835111a08bbf15ba73bc0/etc/keystone.conf.sample#L514-L520

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1690756/+subscriptions


References