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
This commit is contained in:
Hervé Beraud 2021-03-10 15:11:21 +01:00
parent ebf180e6a2
commit 6f3c6c9e30
1 changed files with 15 additions and 1 deletions

View File

@ -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):