ПРОЕКТЫ 


  АРХИВ 


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



Hello!

On Fri, Sep 23, 2011 at 01:48:43PM +0300, Gena Makhomed wrote:

> 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-сервере, делая запросы к базе данных и т.п.

Patches are welcome.

Maxim Dounin

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


 




Copyright © Lexa Software, 1996-2009.