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

Deomid Ryabkov myself at rojer.pp.ru
Mon Oct 26 16:29:18 MSK 2009


Andrey Zloy wrote:
> Распопал почему используется именно этот алгоритм вычисления сервера.
> Алгоритм называется 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
>   
вы не так читаете пост. обсуждается стабильное хеширование,
но приведённый в конце алгоритм - это то, что делает Cache::Memcached 
*сейчас*.

if your client is already compatible with Cache::Memcached (which is [странная хрень со сдвигом и маской])

"% num_servers" и "стабильное хеширование" несовместимы. попробуйте 
понять почему.
я хотел предложить сделать стабильное хеширование, но потом подумал,
что при num_servers = 2 об этом думать рано и усложнять незачем.

хорошо, я понял откуда растут ноги сдвига и & 0x7fff. оставьте для 
совместимости.
уберите только md5 и base64, пусть под crc идёт голый uri + args, ему 
всё равно.
> 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 это аналог
>>> только переписанный на Си. А я Си не знаю )
>>>       
>> Си, мне кажется, здесь необязателен. Можно подобрать функцию, которую легко
>> написать и вычислять на перле с обеих сторон от мемкеша.
>>
>> Еще очень полезные функции сумм и хешей от переменных написал Кирилл.
>>     


-- 
Deomid "rojer" Ryabkov
myself at rojer.pp.ru
rojer at sysadmins.ru
ICQ: 8025844

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3308 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091026/05b5e1e0/attachment.bin>


More information about the nginx-ru mailing list