ПРОЕКТЫ 


  АРХИВ 


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: Реализация multiple limit_req



Hello!

On Wed, Dec 14, 2011 at 06:05:01PM +0400, Валентин Бартенев wrote:

> 
> Не алгоритм, а принцип работы:
> 
>  - Ищем лимит, который отклоняет запрос;
>  - if found
>     -- Отклоняем запрос.
>  - else 
>     -- Учитываем запрос во всех лимитах;
>     -- Ищем лимит, который устанавливает наибольший delay;
>     -- if max delay == 0
>         --- Пропускаем запрос.
>     -- else
>         --- Задерживаем запрос на max delay.
> 
> Хорошо?

Давай для начала распишем последствия обычного "последовательного" 
применения лимитов, чтобы было понятно что так нельзя.  Или, 
наоборот, можно, но с какими ограничениями.

Что касается принципа, то он мне не нравится: нам либо нужно всё 
это делать держа локи (deadlock expected), либо имеем race между 
проверкой и обновлением (и, опять же, локи придётся брать два 
раза, что тоже не очень хорошо).

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.