Atom feed of this document
  
Juno -  Juno -  Juno -  Juno -  Juno -  Juno -  Juno -  Juno - 

 Caching layer

Identity supports a caching layer that is above the configurable subsystems, such as token or assignment. The majority of the caching configuration options are set in the [cache] section. However, each section that has the capability to be cached usually has a caching option that will toggle caching for that specific section. By default, caching is globally disabled. Options are as follows:

Table 6.1. Description of cache configuration options
Configuration option = Default value Description
[cache]
backend = keystone.common.cache.noop (StrOpt) Dogpile.cache backend module. It is recommended that Memcache with pooling (keystone.cache.memcache_pool) or Redis (dogpile.cache.redis) be used in production deployments. Small workloads (single process) like devstack can use the dogpile.cache.memory backend.
backend_argument = [] (MultiStrOpt) Arguments supplied to the backend module. Specify this option once per argument to be passed to the dogpile.cache backend. Example format: "<argname>:<value>".
config_prefix = cache.keystone (StrOpt) Prefix for building the configuration dictionary for the cache region. This should not need to be changed unless there is another dogpile.cache region with the same configuration name.
debug_cache_backend = False (BoolOpt) Extra debugging from the cache backend (cache keys, get/set/delete/etc calls). This is only really useful if you need to see the specific cache-backend get/set/delete calls with the keys/values. Typically this should be left set to false.
enabled = False (BoolOpt) Global toggle for all caching using the should_cache_fn mechanism.
expiration_time = 600 (IntOpt) Default TTL, in seconds, for any cached item in the dogpile.cache region. This applies to any cached method that doesn't have an explicit cache expiration time defined for it.
memcache_dead_retry = 300 (IntOpt) Number of seconds memcached server is considered dead before it is tried again. (dogpile.cache.memcache and keystone.cache.memcache_pool backends only)
memcache_pool_connection_get_timeout = 10 (IntOpt) Number of seconds that an operation will wait to get a memcache client connection.
memcache_pool_maxsize = 10 (IntOpt) Max total number of open connections to every memcached server. (keystone.cache.memcache_pool backend only)
memcache_pool_unused_timeout = 60 (IntOpt) Number of seconds a connection to memcached is held unused in the pool before it is closed. (keystone.cache.memcache_pool backend only)
memcache_servers = localhost:11211 (ListOpt) Memcache servers in the format of "host:port". (dogpile.cache.memcache and keystone.cache.memcache_pool backends only)
memcache_socket_timeout = 3 (IntOpt) Timeout in seconds for every call to a server. (dogpile.cache.memcache and keystone.cache.memcache_pool backends only)
proxies = (ListOpt) Proxy classes to import that will affect the way the dogpile.cache backend functions. See the dogpile.cache documentation on changing-backend-behavior.
[memcache]
dead_retry = 300 (IntOpt) Number of seconds memcached server is considered dead before it is tried again. This is used by the key value store system (e.g. token pooled memcached persistence backend).
pool_connection_get_timeout = 10 (IntOpt) Number of seconds that an operation will wait to get a memcache client connection. This is used by the key value store system (e.g. token pooled memcached persistence backend).
pool_maxsize = 10 (IntOpt) Max total number of open connections to every memcached server. This is used by the key value store system (e.g. token pooled memcached persistence backend).
pool_unused_timeout = 60 (IntOpt) Number of seconds a connection to memcached is held unused in the pool before it is closed. This is used by the key value store system (e.g. token pooled memcached persistence backend).

Current functional backends are:

  • dogpile.cache.memcached - Memcached backend using the standard python-memcached library

  • dogpile.cache.pylibmc - Memcached backend using the pylibmc library

  • dogpile.cache.bmemcached - Memcached using python-binary-memcached library.

  • dogpile.cache.redis - Redis backend

  • dogpile.cache.dbm - Local DBM file backend

  • dogpile.cache.memory - In-memory cache, not suitable for use outside of testing as it does not cleanup it's internal cache on cache expiration and does not share cache between processes. This means that caching and cache invalidation will not be consistent or reliable.

  • dogpile.cache.mongo - MongoDB as caching backend.

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page

loading table of contents...