Comment 14 for bug 1405549

Revision history for this message
Alexander Makarov (amakarov) wrote :

Background:

Memcache connection pool is a queue of memcache clients.
Every memcache client has an array of memcache server connections to shard data across.
Every memcache connection has status information such as 'deaduntil' value indicating time until this connection considered down.
When one of remote memcahce hosts is down any attempt to connect to it fails by timeout which is configured with [cache]memcache_socket_timeout; corresponding connection marked as deaduntil=now+[cache]memcache_dead_retry
Every time a client is popped from the pool it is populated with information about dead servers.
Every time a client is returned to the pool the pool information about dead servers is updated with the one from client.

Problem description:

Clients are not getting populated with information that a remote memcache is down until the first client to experience the problem is returned to the pool, so clients will try to connect to a dead memcache server during about twice socket_timeout time.