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