Re: Реализация multiple limit_req

Maxim Dounin mdounin на mdounin.ru
Чт Дек 15 12:38:55 UTC 2011


Hello!

On Wed, Dec 14, 2011 at 10:54:46PM +0400, Михаил Монашёв wrote:

> Простите,  что  встреваю  в  Ваш  разговор.  Хочу заметить, что весьма
> возможно  очень многим людям подойдут не идеальные варианты, когда при
> ограничении  в  1000 запросов в минуту проскочит не ровно 1000, а 1001
> или  даже  1002. Или наоборот, заблокирует 998 или 998-ый запрос. Т.е.
> весьма  вероятно,  что  исключительная  точностью  в  подобном вопросе
> востребована   очень   немногими,  и  потому  возможно  сэкономить  на
> блокировках  и  написать код, работающий не с абсолютной точностью, но
> зато  хорошо  заточенный  под недалёкое будущее, когда количество ядер
> будет  исчисляться  сотнями.  Саму  же  небрежность в работе описать в
> документации,   снабдив   причинами,   почему   выбрана  именно  такая
> реализация.

Совсем без блокировок - не обойтись, т.к. там обход дерева в 
разделяемой памяти, и потом ещё и обновление нескольких значений.  
Без блокировок будет не просто неточно, а в лучшем случае - просто 
мусор, в худшем - segmentation fault.

Maxim Dounin

p.s. Ты вот лучше кейсов накидай - как ты будешь использовать 
несколько одновременных limit_req, когда они будут?



Подробная информация о списке рассылки nginx-ru