purge

Igor Sysoev igor на sysoev.ru
Чт Июл 29 23:25:26 MSD 2010


On Thu, Jul 29, 2010 at 12:35:24PM -0400, Alex Sergeyev wrote:

> Игорь,
> 
> > А где это пропагандируют и что это означает ?
> > Поиск в интернетах ничего не дал.
> 
> @mnot из Yahoo на Velocity показывал презентацию про их (яху команды работающей 
> над дополнениями к squid и тесно общающимися с IETF) видение инвалидации кеша.
> 
> А в интернете я тоже не нашёл, хотя думал что это было одно из того же
> что он упоминал как rfc-draft. Оказывается нет...
> 
> http://www.slideshare.net/mnot/stupid-web-caching-tricks
> 
> 
> На вопрос "есть ли какие RFC на эти теги rel" сегодня он написал: "not
> yet, soon."

В общем, там не особо понятно. Особенно, как именно делается инвалидация.
Да и многословно как-то - rel="invalidates", rel="invalidated-by":
напоминает WebDAV.

Я пару лет назад планировал ленивую инвалидацию большого объёма ответов
таким образом: в ответ добавляются заголовки с ключами в виде md5-хэшей:

X-Accel-Depends: XXXXX...md5...XXXXXX  YYYYY...md5...YYYYYY ...

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

Инвалидирующие ключи получаются тоже в ответах

X-Accel-Invalidate: XXXXX...md5...XXXXXX  YYYYY...md5...YYYYYY ...

Допустим, есть страница со списком каментов john'а и bill'а,
у неё есть такие зависимости

X-Accel-Depends: XXX...john...XXX  YYY..bill...YYY

Если теперь bill запостит камент, то в ответе будет

X-Accel-Invalidate: YYY..bill...YYY

nginx создаёт такой ключ в зоне и следующий запрос к списку обнаружит,
что список уже невалиден.


-- 
Игорь Сысоев
http://sysoev.ru



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