proxy cache stampede

Vladimir Stavrinov vstavrinov на gmail.com
Ср Сен 21 16:15:08 UTC 2011


On Wed, Sep 21, 2011 at 06:26:14PM +0300, Alex Vorona wrote:

> Отдавайте редирект туда, где файл существует, в то время как сами

А где же он ещё существует, если не на backend сервере? 

> закачиваете этот файл в

Это я не понял. Кто закачивает и как, если мы запрос уже куда - то
перенаправили? Или я должен в ручную это делать? И какой в этом смысл,
если все такие запросы пойдут на backend сервер?

> этой проблемы, proxy_store тут в помощь.

Я не вижу там никаких средств управления хранилищем. Как его чистить? По
какому критерию?  Как ограничить объём? Или это опять нужно делать
вручную? Тогда уж лучше тупо делать полное зеркало с помощью rsync, что
я собственно и делаю, но как раз и пытаюсь уйти от этого в сторону
кэширующий серверов, ибо при больших объёмах и частом обновлении (файлы
не обновляются - добавляются новые, а не нужные удаляются) это становится
слишком накладным во всех отношениях.

> А по-вашему, что должен делать nginx, когда приходят ещё запросы на
> один и тот же uri, отсутствующий в кэше на момент первого запроса и
> уже тянущийся в 1 поток?

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

-- 

***************************
##  Vladimir Stavrinov
##  vstavrinov на gmail.com
***************************



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