Re: nginx и несколько memcached серверов

Andrey Zloy andrey.zloy at gmail.com
Mon Oct 26 13:11:55 MSK 2009


Распопал почему используется именно этот алгоритм вычисления сервера.
Алгоритм называется ketama. Основной смысл его в том чтобы
безболезненно добавлять новые серверы memcached в кластер. Если номер
сервера будет выбираться хаотично (хоть и постоянно при одинаковом
количестве серверов memcached), то при добавлении нового сервера ключи
изменят свое положение на серверах и закешированные данные будут
потеряны.
Использую ketama можно безболезненно добавлять новые серверы memched,
старые ключи будут лежать на старых серверах.

Линки: http://lists.danga.com/pipermail/memcached/2008-March/006562.html
http://lists.danga.com/pipermail/memcached/2007-April/003835.html

26 октября 2009 г. 12:31 пользователь Peter A Leonov <gojpeg at gmail.com> написал:
> On 26.10.2009, at 10:50, Andrey Zloy <andrey.zloy at gmail.com> wrote:
>
>>> Не пойму, зачем повторять алгоритм бекенда, если его явно
>>> неудобно считать в
>>> энжинксе? ИМХО, было бы надежнее поменять алгоритм.
>>> С уважением,
>>> Петр.
>>
>> Мысль прекрасна ) Но что произойдет при обновлении модуля бэкэенда?
>> Или при смене модуля на другой?
>> Правильно, алгоритм вернется на место.
>
> Согласен, это неудобно.
>
>>
>> А вообще строки по вычислению сервера взяты из Cache::Memcached, а на
>> самом деле для записи используется Cache::Memcached::Fast это аналог
>> только переписанный на Си. А я Си не знаю )
>
> Си, мне кажется, здесь необязателен. Можно подобрать функцию, которую легко
> написать и вычислять на перле с обеих сторон от мемкеша.
>
> Еще очень полезные функции сумм и хешей от переменных написал Кирилл.


More information about the nginx-ru mailing list