From 6f3c6c9e30a2e41261a1d337e4724992b2c3bc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Beraud?= Date: Wed, 10 Mar 2021 15:11:21 +0100 Subject: [PATCH] Adding technical details about the memcache pool backend. This backend lack of documentation and technical details. Many people think that this the memcache pool backend is going to be HA and think that values are replicated. The added details try to give more details about how this backend works under the hood. Change-Id: If9056168aacca85ae072172ec203319af42962d8 --- oslo_cache/backends/memcache_pool.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/oslo_cache/backends/memcache_pool.py b/oslo_cache/backends/memcache_pool.py index e07d6fa6..449d48f9 100644 --- a/oslo_cache/backends/memcache_pool.py +++ b/oslo_cache/backends/memcache_pool.py @@ -36,7 +36,21 @@ class ClientProxy(object): class PooledMemcachedBackend(memcached_backend.MemcachedBackend): - """Memcached backend that does connection pooling.""" + """Memcached backend that does connection pooling. + + This memcached backend only allows for reuse of a client object, + prevents too many client object from being instantiated, and maintains + proper tracking of dead servers so as to limit delays when a server + (or all servers) become unavailable. + + This backend doesn't allow to load balance things between servers. + + Memcached isn't HA. Values aren't automatically replicated between servers + unless the client went out and wrote the value multiple time. + + The memcache server to use is determined by `python-memcached` itself by + picking the host to use (from the given server list) based on a key hash. + """ # Composed from GenericMemcachedBackend's and MemcacheArgs's __init__ def __init__(self, arguments):