Михаил Монашёв
July 30, 2010 03:38AM
Здравствуйте, Игорь.

>> IS> Я пару лет назад планировал ленивую инвалидацию большого объёма
>> IS> ответов таким образом: в ответ добавляются заголовки с ключами в
>> IS> виде md5-хэшей:
>>
>> IS> X-Accel-Depends: XXXXX...md5...XXXXXX YYYYY...md5...YYYYYY ...
>>
>> IS> Ключи хранятся в той же зоне, что и мета-данные кэша.
>> IS> Если в запрашиваемом ответе есть такие ключи, то проверяется
>> IS> существование этих ключей. Если ключей нет, то ответ валидный.
>> IS> Если же есть и хотя бы один ключ моложе ответа, то ответ
>> IS> невалидный.
>> IS> Если же ключи есть, но старше ответа, то ответ валидный - он
>> IS> получен уже после получения инвалидирующих ключей.
>>
>> IS> Инвалидирующие ключи получаются тоже в ответах
>>
>> IS> X-Accel-Invalidate: XXXXX...md5...XXXXXX YYYYY...md5...YYYYYY ...
>>
>> IS> Допустим, есть страница со списком каментов john'а и bill'а,
>> IS> у неё есть такие зависимости
>>
>> IS> X-Accel-Depends: XXX...john...XXX YYY..bill...YYY
>>
>> IS> Если теперь bill запостит камент, то в ответе будет
>>
>> IS> X-Accel-Invalidate: YYY..bill...YYY
>>
>> IS> nginx создаёт такой ключ в зоне и следующий запрос к списку
>> IS> обнаружит, что список уже невалиден.
>>
>> Мне кажется, что подобной логике место в коде бэкенда.
>> закэшированным данным - в мемкешеде ну или в кэше nginx-а, из
>> которого можно удалять через PURGE. А чтобы удалить несколько
>> закэшированных кусочков, пишется на libev либа, которая делает
>> нужное количество http-запросов параллельно. А ещё лучше, если
>> веб-сервер позволит делать мульти-запросы для PURGE, когда в одном
>> запросе несколько url-ов на удаление из кэша. Подобное ещё было бы
>> полезно для веб-дава сделать, а то порой досить nginx кучей DELETE
>> приходится.

IS> Тут управляет именно бэкенд: он устанавливает зависимости.

Неудобно генерить подобные htpp-заголовки, ибо информация о них
известна лишь в середине выполнения генерящего страницу кода. А
заголовки хочется выплюнуть как можно раньше, и не держать в памяти
уже сгенерённый к тому времени html. Это я конечно упрощаю и всё
применительно к себе говорю, но наверное так многие поступают. Чистка
кэша в мемкешеде тут вне конкуренции.

--

С уважением,
Михаил Монашёв
mailto:postmaster@softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.


_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

purge

Igor Sysoev July 29, 2010 05:00AM

Re: purge

Roman Mashirov July 29, 2010 05:22AM

Re: purge

Igor Sysoev July 29, 2010 05:24AM

Re: purge

Igor Sysoev July 29, 2010 05:30AM

Re: purge

Roman Mashirov July 29, 2010 05:56AM

Re: purge

Igor Sysoev July 29, 2010 06:04AM

Re: purge

Roman Mashirov July 29, 2010 06:28AM

Re: purge

Igor Sysoev July 29, 2010 11:16AM

прокси в nginx

Bdfy July 29, 2010 08:32AM

Re: прокси в nginx

Sergey Shepelev July 29, 2010 09:00AM

Re[2]: purge

Влад Максимов July 29, 2010 06:06AM

Re[2]: purge

Михаил Монашёв July 29, 2010 09:36AM

Re: purge

Igor Sysoev July 29, 2010 11:12AM

Re: purge

Yuriy Taraday July 29, 2010 06:04AM

Re: purge

Igor Sysoev July 29, 2010 11:20AM

Re: purge

Alexandr Sergeyev July 29, 2010 06:52AM

Re: purge

Igor Sysoev July 29, 2010 11:18AM

Re: purge

Alex Sergeyev July 29, 2010 12:36PM

Re: purge

Igor Sysoev July 29, 2010 03:26PM

Re[2]: purge

Михаил Монашёв July 29, 2010 05:54PM

Re: purge

Igor Sysoev July 30, 2010 02:48AM

Re[2]: purge

Михаил Монашёв July 30, 2010 03:38AM

Re[3]: purge

Михаил Монашёв July 30, 2010 03:46PM

Re: purge

Alexandr Sergeyev July 30, 2010 10:24AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 253
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready