Welcome! Log In Create A New Profile

Advanced

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

Deomid Ryabkov
October 25, 2009 04:24PM
Andrey Zloy wrote:
> Сдвиг на 16 бит потому что это алгоритм из Cache::Memcached. думаю что
> они сдвигают биты для получения меньшего числа. Ведь нет смысла делить
> огромное число, если нужен лишь остаток от деления.
наоборот, если цель - получить осттаок от деления, то нет смысла
сдвигать. и уж тем более нет смысла накладывать маску 0x7fff.
сдвигать есть смысл только в том случае, если в нижних битах по какой-то
причине недостаточно энтропии.
может, конечно, я чего-то не понимаю, пусто тогда другие участники меня
поправят. в чём сермяжная правда использования верхних 16 бит, а не нижних?
мой вариант: (CRC32(uri) ^ CRC32(args)) % num_servers, без
предварительной конкатенации - xor двух crc32 ничем не хуже, чем CRC32
от конкатенации.

> На счет замены md5 на crc32 согласен, надо переделать. Нет смысла
> получать такой сложный хэш, когда цель всего лишь сжать url.
>
> 25 октября 2009 г. 20:02 пользователь Deomid Ryabkov
> <myself@rojer.pp.ru <mailto:myself@rojer.pp.ru>> написал:
>
> CRC32 от MD5, зачем-то сдвинутый на 16. не нравятся младшие биты?
> md5 вычислительно значительно дороже CRC32, может обойтись только
> CRC32?
>
> Andrey Zloy wrote:
>
> Написали небольшой конфиг, который позволяет nginx'у
> определять "правильный" memcached сервер.
> Логика определения сервера взята из модуля Cache::Memcached.
> Ключом для мемкеша служит md5 от url'а страницы.
>
> На продакшн конфиг пока не выкатывал. На тестовых серверах
> работает хорошо.
>
> Подскажите могут ли быть подводные камни?
> Может кто уже писал подобные решения
>
> http {
> perl_set $md5_uri 'sub {
> use Digest::MD5 qw(md5_base64);
> my $r = shift;
> my $uri=$r->uri;
> my $args=$r->args;
> if ($args){
> $uri=$uri."?".$args;
> }
> return md5_base64($uri);
> }';
>
> perl_set $memcached_index '
> sub {
> use String::CRC32;
> my $r = shift;
> return (((crc32($r->variable("md5_uri")) >> 16) &
> 0x7fff) % 2); # 2 - кол-во серверов memcached
> }
> ';
>
> server {
> listen 3666;
> server_name 172.28.144.68;
>
> location / {
> set $memcached_key $md5_uri;
> if ($memcached_index = 0){
> memcached_pass 172.28.144.52:11211
> http://172.28.144.52:11211 http://172.28.144.52:11211;
> }
> if ($memcached_index = 1){
> memcached_pass 172.28.144.53:11211
> http://172.28.144.53:11211 http://172.28.144.53:11211;
> }
>
> error_page 404 @fallback;
> }
> }
> }
>
>
>
> --
> Deomid "rojer" Ryabkov
> myself@rojer.pp.ru <mailto:myself@rojer.pp.ru>
> rojer@sysadmins.ru <mailto:rojer@sysadmins.ru>
> ICQ: 8025844
>
>


--
Deomid "rojer" Ryabkov
myself@rojer.pp.ru
rojer@sysadmins.ru
ICQ: 8025844
Attachments:
open | download - smime.p7s (3.2 KB)
Subject Author Posted

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

Andrey Zloy October 25, 2009 05:48AM

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

Maxim Dounin October 25, 2009 06:22AM

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

Andrey Zloy October 25, 2009 06:46AM

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

Deomid Ryabkov October 25, 2009 01:14PM

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

Andrey Zloy October 25, 2009 01:56PM

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

Deomid Ryabkov October 25, 2009 04:24PM

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

Andrey Zloy October 25, 2009 05:04PM

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

Peter A Leonov October 25, 2009 08:04PM

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

Andrey Zloy October 26, 2009 04:10AM

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

Peter A Leonov October 26, 2009 05:54AM

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

Andrey Zloy October 26, 2009 06:26AM

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

Deomid Ryabkov October 26, 2009 09:36AM

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

Andrey Zloy October 26, 2009 10:40AM

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

mente March 23, 2010 01:51PM

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

Михаил Монашёв March 23, 2010 02:06PM

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

mente March 23, 2010 02:24PM

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

Михаил Монашёв March 23, 2010 03:34PM

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

Михаил Монашёв March 23, 2010 03:40PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 319
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready