namespace-ы при использовании нескольких memcached-ов

Dmitriy MiksIr miksir at maker.ru
Tue Feb 19 18:30:27 MSK 2008



Монашёв Михаил пишет:
> Здравствуйте.
> 
> Столкнулись   с   проблемой   некорректного  отображения  ключиков  на
> несколько  мемкашед-серверов при включённом балансере memcached_hash (
> http://openhack.ru/nginx-patched/wiki/MemcachedHash ). Проблема в том,
> что перловые модули Cache::Memcached и Cache::Memcached::Fast, которые
> записывают ключики в мемкашед, при расчёте сервера используют ключ без
> нэйспейса.

А почему они так делают? Мне кажется, что тут скорее поведение этих 
библиотек менее валидное, чем поведение nginx.
Поправьте меня, если я не прав, но неймспейсы - это исключительно 
софтовое решение, а выбор сервера должен быть сделан на основе ключа 
сохранения, вне зависимости из каких частей он состоит.

   А  в  конфиге  nginx-а  можно  было  задать только ключик.
> Поэтому нейспейс писался прямо в ключик:
> 
> set $memcached_key   "my-namespace$uri$is_args$args";
> 
> И это прекрасно работало, когда не было балансера (ибо nginx обходил
> все мемкашед-сервера в поисках ключа).
> 
> Но  чтобы  корректно вычислить мемкашед-сервер нужен только ключик без
> неймспейса.     По     этой    причине    мы    добавили    переменную
> $memcached_namespace:
> 
> set $memcached_namespace "my-namespace";
> set $memcached_key       "$uri$is_args$args";
> 
> С  ней  всё  будет работать как и прежде, но перед отправкой запроса к
> мемкашеду,  к  ключу  будет  препендиться неймспейс, а мемкашед-сервер
> будет вычисляться только от ключа.
> 
> Подробнее тут: http://openhack.ru/nginx-patched/wiki/MemcachedHash
> 






More information about the nginx-ru mailing list