Как исправить "устаревший доступ к данным" в memcached

Мы столкнулись с проблемой с memcached (v1.4.4 на Redhat), которая точно описана ниже:

С постоянным хэшированием ketama в memcached не существует строгого состояния для того, где живет данный ключ. При отсутствии актуальной информации о переназначении сервера ключей клиенты могут читать или записывать ключ с неправильного сервера memcached, что приведет к устаревшим или противоречивым данным. Например, если произойдет какое-либо нарушение работы сети, и один или несколько клиентов решат, что определенный сервер memcached больше не доступен, они автоматически перефразируют некоторые данные в остальные узлы, даже если исходный сервер все еще доступен. Если узел в конечном итоге возвращается к сервису (например, после устранения сбоя в сети), данные на этом узле будут устаревшими, и клиенты без обновленной информации о переназначении сервера ключей будут считывать устаревшие данные.

Есть ли способ решить эту проблему без дорогостоящей альтернативы коммерческому программному обеспечению?

1 ответ

Если у вас все еще есть проблемы с вашей реализацией, я привел некоторый вклад в аналогичный вопрос здесь: Как обрабатывать восстановление memcached узлов при использовании spymemcached & HashAlgorithm.KETAMA_HASH Надеюсь, это вам тоже поможет.

Другие вопросы по тегам