Xena Series Release Notes


새로운 기능

  • Add new options (hashclient_retry_attempts, hashclient_retry_delay, dead_timeout) to allow to configure pymemcache’s HashClient use through dogpile.cache’s pymemcache backend. Those options expose pymemcache params that allow to configure the failover for memcached cluster.

  • Add new options (enable_retry_client, retry_attempts, retry_delay) to add retry mechanisms to the pymemcache backend.

  • New options (enable_socket_keepalive, socket_keepalive_idle, socket_keepalive_interval, socket_keepalive_count) allow to use and configure pymemcache’s socket keepalive capabilities.


새로운 기능

  • Added a new memcached driver that uses pymemcache through dogpile.cache.

  • Configuration option memcache_pool_flush_on_reconnect added to control if flush will be sent to memcached server after reconnect.

Bug Fixes

  • [bug 1888394] If a memcache server disappears and then reconnects when multiple memcache servers are used (specific to the python-memcached based backends) it is possible that the server will contain stale data. To avoid this, param flush_on_reconnect was used in code.

    But unfortunately this option is causing another issue. If memcache server disappears, or client had broken connection to memcache server, clients start to flush server on reconnect.

    This means that network connections will go UP and can cause server to be overloaded until memcache will be unresponsive.

    Simply said this option can cause loops of flushes and overloaded memcached servers. This change is moving optional parameter flush_on_reconnect to oslo.cache config.


Bug Fixes

  • Fix the memcache_pool backend broken in oslo.cache’s version 2.1.0 by switching from a python-memcache based client to a pymemcache based client. Reintroducing the client based on python-memcached as the default client for the memcache_pool dogpile backend.


Bug Fixes

  • Switch from python-memcached to pymemcache for memcache_pool. This avoids issues with thread.local usage and fixes errors seen with inheritance. This is only applicable with dogpile.cache memcached backend.


Upgrade Notes

  • Python 2.7 support has been dropped. The minimum version of Python now supported by oslo.cache is Python 3.6.


Upgrade Notes

  • The default value for memcache_socket_timeout has been lowered from 3 seconds to 1 second. The positive side-effect of this can be found in downstream changes. If you deployment relies explicitly on a timeout of 3 seconds, please set that override in your configuration.


Bug Fixes

  • [bug 1819957] If a memcache server disappears and then reconnects when multiple memcache servers are used (specific to the python-memcached based backends) it is possible that the server will contain stale data. The default is now to supply the flush_on_reconnect optional argument to the backend. This means that when the service connects to a memcache server, it will flush all cached data in the server. This change only impacts the pooled backend as it is the most likely (with heavy use of greenlet) to be impacted by the problem and is the recommended production configuration.

    See the help from python-memcached:

    @param flush_on_reconnect: optional flag which prevents a

    scenario that can cause stale data to be read: If there’s more than one memcached server and the connection to one is interrupted, keys that mapped to that server will get reassigned to another. If the first server comes back, those keys will map to it again. If it still has its data, get()s can read stale data that was overwritten on another server. This flag is off by default for backwards compatibility.


기타 노트

  • [bug 1743036] The backend_argument value(s) for url when configuring memcache did not properly handle multiple servers. This is because the URL was passed as a string (comma delimited) instead of a list to the memcache library/client. The url argument is now special cased and will split the string on a comma so that it mirrors the behavior of the ListOpt used by memcache_servers option.


새로운 기능

  • memcache_socket_timeout is changed to float, given the same default value ‘3.0’.


새로운 기능

  • etcd 3.x grpc-gateway HTTP “/v3alpha” API to cache key/value pairs를 사용하는 새로운 etcd3gw 드라이버가 추가되었습니다.


기타 노트

  • 릴리즈 노트를 관리하려면 reno로 전환하십시오.