nginx-0.7.44

Maxim Boguk astar at rambler-co.ru
Tue Mar 24 12:55:31 MSK 2009


Igor Sysoev wrote:
> Изменения в nginx 0.7.44                                          23.03.2009
>
>     *) Добавление: предварительная поддержка кэширования в модуле 
>        ngx_http_proxy_module.
>
>   
Возможно я много хочу... но хотелось бы поднять следующую проблему 
(которая еще и с mod_accel была):
когда frontend не один а N эффективность кеширования падает в N раз и 
пропорционально растет нагрузка на backend.

Что хочется... если уж есть механизм вычисления cache key готовый...
хотелось бы иметь возможность указывать что если (в случае 3х frontends):
key%3 = 0 то локально работать с локальным кешем
если key%3 = 1 то идти к серверу N2 и получать (не кешируя) ответ от него
если key%3 = 2 то идти к серверу N3 и получать (не кешируя) ответ от него

Т.е. используется следующий алгоритм:

1. вычисляется ключ кэша, проверяется "свой-чужой"
2. если "свой", идем в свой кэш; если там нет, то на бэкэнд, ответ кэшируем
3. если "чужой", отправляем запрос на другую машину, а та уже либо 
отдаёт из кэша, либо запрашивает бэкэнд и кэширует (локально ответ не 
кешируем).

т.е. получаем exclusive распределенный кеш (ценой увеличения 
внутрисерверного траффика и дополнительного хопа на часть ответов).
+ более устойчивую систему к выходу из строя одного из frontends так как 
потеряется не весь кеш а только 1/N часть

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

PS: давно пора было зарелизить кеширование. И большое спасибо.

-- 
SY, Maxim Boguk 






More information about the nginx-ru mailing list