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