ПРОЕКТЫ 


  АРХИВ 


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]

****SPAM(5.1)**** Re: Кеширование динам ического контента



Alexander Dolgarev пишет:
Пусть есть 500 обращений к странице в минуту, контент на которой
обновляется 2 раза в минуту (т.е. пусть кеш очищается каждые 30 сек),
ответ на запрос генерируется 6 секунд (допустим, это некий онлайн).
При кешировании могут возникнуть 2 неприятных момента:
1) если одновременно (т.е. в течении создания контента на один запрос
- 6сек) приходят N запросов, в кеше еще ничего нет, тогда к бекенду
будет сделано N запросов и страница N раз положена в кеш, здесь
возникает вопрос: можно в этом случае предусмотреть в новой версии
механизм, который позволит сделать 1 запрос, например, поставить в
кеше метку на URL, что данный запрос обрабатывается, ждите его
появление в кеше или т.п.
2) когда кеш очистится, то при поступлении нового запроса надо будет
ждать 6 секунд, т.е. с точки зрения пользователя контент обновляется
почти сразу, но 2 раза в минуту надо ждать по 6 секунд, можно ли
как-то перед очисткой кеша за указанное количество секунд (жестко
заданное или вычисляемое по статистике по предыдущим запросам)
получать страничку и ложить ее в кеш, т.е. за 6 сек до очистки кеша
посылается запрос, результат кладется в кеш, если ответ не успевает
придти до очистки, то как в случае 1) ставим метку что данный запрос
уже обрабатывается и новые запросы должны ждать появления ответа в
кеше, а не отсылаться на сервер.

Возможно более оптимальным будет другой вариант. Вместо очистки кэша делать его обновление. Т.е. первый-же запрос по истечении времени хранения данных в кэше идет на бэкэнд, внутри nginx ставиться флаг на данный урл что он обновляется, а все последующие запросы в течении этих 6-и секунд пусть берут данные из еще необновленного кэша. Когда отработает 6-и секундный запрос данные в кэше обновяться и дальше все будут брать уже новый вариант страницы.

С точки зрения скорости, мне кажеться, этот вариант намного лучше чем если будет висеть куча запросов и ждать ответа 6 секунд.

Может, немного запоздало, но очень надо.

2008/2/17 Andrew Velikoredchanin <andy@xxxxxxxxxxx>:
Igor Sysoev пишет:
On Sat, Feb 16, 2008 at 05:13:01PM +0200, Alexander Dolgarev wrote:

Подскажите, кто что использовал для кешироания динамического контента?
Я думаю, на следующей неделе выйдет 0.7.0 с поддержкой кэширования.
Пока только для проксирования;
Самое интересное - будет-ли управляемая групповая очистка такого кэша?






 




Copyright © Lexa Software, 1996-2009.