ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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@xxxxxxxxx> написал:
On 26.10.2009, at 10:50, Andrey Zloy <andrey.zloy@xxxxxxxxx> wrote:

Не пойму, зачем повторять алгоритм бекенда, если его явно
неудобно считать в
энжинксе? ИМХО, было бы надежнее поменять алгоритм.
С уважением,
Петр.
Мысль прекрасна ) Но что произойдет при обновлении модуля бэкэенда?
Или при смене модуля на другой?
Правильно, алгоритм вернется на место.
Согласен, это неудобно.

А вообще строки по вычислению сервера взяты из Cache::Memcached, а на
самом деле для записи используется Cache::Memcached::Fast это аналог
только переписанный на Си. А я Си не знаю )
Си, мне кажется, здесь необязателен. Можно подобрать функцию, которую легко
написать и вычислять на перле с обеих сторон от мемкеша.

Еще очень полезные функции сумм и хешей от переменных написал Кирилл.


--
Deomid "rojer" Ryabkov
myself@xxxxxxxxxxx
rojer@xxxxxxxxxxxx
ICQ: 8025844

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature



 




Copyright © Lexa Software, 1996-2009.