Использование нескольких клиентов для доступа к memcache с последовательным распределением ключей с помощью Ketama

У меня проблемы с чтением с сервера memcache с использованием другого клиента Python, отличного от того, который использовался для записи значений в memcache.

У меня есть процесс, который пишет в кеш с помощью pylibmc, используя поведение 'ketama'. У меня есть другой сервис, который читает из memcache, асинхронно, из Tornado IOLoop. Я настроил tornado-memcache для поиска сервера с помощью модуля python-ketama, который является просто оболочкой для библиотеки C общего назначения, libketama.

Соответствующий код инициализации клиента pylibmc:

mc = pylibmc.Client(nodes, behaviors={"no_block": True,
                                      "tcp_nodelay":True,
                                      "ketama": True,
                                      "hash": 'md5'})

У кого-нибудь есть опыт создания чего-то похожего на это (несколько клиентов)? Кажется, что либо хэш-континуумы, используемые двумя клиентами, очень разные, либо ключи хешируются / извлекаются по-разному (оба клиента должны использовать md5).

РЕДАКТИРОВАТЬ: я с тех пор написал письменные тесты, чтобы подтвердить, что это проблема континуума.

0 ответов

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