ПРОЕКТЫ 


  АРХИВ 


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: proxy cache stampede



On 23.09.2011 2:41, Maxim Dounin wrote:

Собственно, limit_req/limit_conn именно на rbtree и работают. И
там не "пяток переменных", там ограничения по произвольному ключу.

С shmem совсем другая проблема: нет нормального способа быстро и с
малыми затратами сообщать в соседние воркеры о новых событиях
(i.e. "файл такой-то появился наконец в кеше, забирайте кому
надо").

но ведь кроме shmem есть ведь и другие способы IPC, например, tcp/ip.

например, воркер-процесс скачивает файл, кладет его в кеш
и говорит через IPC cache manager`у, о том, что файл уже в кеше.
тот обновляет свои внутренние структуры и говорит всем воркерам,
которые хотели получить этот файл и подписались на уведомления,
что файл уже есть в кеше и его можно забирать.

если файла в кеше нет, воркер спрашивает у cache manager`а,
никто ли его сейчас не скачивает с backend`а, и если нет,
то он сам начинает его качать и сообщает cache manager`у
когда он файл качает, остальные воркеры, которые хотели
получить этот файл, отсутствующий в кеше - получают
от cache manager`а уведомление о том, что файла в кеше
пока что нет полностью, но он уже скачивается другим воркером,
и им пока что доступна из кеша только такой фрагмент этого файла.
и далее, в процессе скачивания файла тем одним воркером, они будут
получать уведомления об уже присутствующих в кеше частях файла,
чтобы смогли без лишнего ожидания отдать эти фрагменты клиентам.

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

и затраты меньше, чем в случае, когда воркеры будут делать много
запросов к backend`у к одному и тому же контенту, который динамически
генерируется на backend-сервере, делая запросы к базе данных и т.п.

--
Best regards,
 Gena

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


 




Copyright © Lexa Software, 1996-2009.