proxy cache stampede

Maxim Dounin mdounin на mdounin.ru
Пт Сен 23 10:15:01 UTC 2011


Hello!

On Fri, Sep 23, 2011 at 10:34:22AM +0400, Vladimir Stavrinov wrote:

> On Wed, Sep 21, 2011 at 08:06:21PM +0400, Maxim Dounin wrote:
> 
> > Решение этой проблемы называется "busy locks" [1], и в настоящий 
> 
> "busy locks" заставляют клиента ждать. До определённых пределов это
> может быть терпимым, пока можно что то отрегулировать параметрами
> конфигурации. Но на больших файлах большинство клиентов ничего не
> дождутся и либо отвалятся сами, либо вынуждены будут пойти на backend.
> Но тогда всё вернётся на круги своя и станет как есть сейчас.
> 
> А вот если бы можно было сразу раздавать клиентам контент прямо из
> временного файла, это было бы полноценными решением.

В какой момент данные от бекенда начинают использоваться - это 
вопрос, перпендикулярный busy locks.  Если ответ пустой, то 
разницы нет никакой вообще: так или иначе нужно ждать, пока бекенд 
что-то ответит, а когда он что-то ответил - сразу всё и у всех 
есть.

Понятно, что для задачи кеширования больших файлов, когда время 
генерации ответа бекендом мало, а время на скачивания ответа с 
бекенда - велико, интересно было бы сразу мультиплексировать ответ 
всем клиентам.  Но это лишь дополнительная оптимизация конкретного 
use case'а, проблему в целом, в отличие от busy locks, оно не 
решает.

По хорошему нужно и то, и то.  Для 2.* это есть в планах, в 1.* - 
скорее нет, чем да.

Maxim Dounin



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