
11.1.
World Wide Web 725
хической схеме кэширования. Подобные схемы используются в основном для
снижения трафика, но проигрывают неиерархическим схемам из-за больших за-
держек. Увеличение времени ожидания вызывается частой необходимостью об-
ращаться к нескольким кэширующим серверам, в то время как в неиерархиче-
ских схемах достаточно лишь одного.
В Web введены различные протоколы поддержания непротиворечивости
кэша. Чтобы гарантировать, что документ, полученный из кэша, соответствует дей-
ствительности, некоторые web-заместители сначала посылают серверу HTML-
запрос get с дополнительным заголовком запроса
If-Mod1
fled-Since, определяя
время последней модификации кэшируемого документа. Сервер возвращает до-
кумент, только если за указанное время он был изменен. В противном случае
web-заместитель просто возвращает локальному клиенту его кэшированную вер-
сию.
Если следовать терминологии, которую мы ввели в главе 6, это соответству-
ет протоколу извлечения.
К сожалению, эта стратегия требует, чтобы заместитель связывался с серве-
ром при каждом запросе. Чтобы повысить производительность за счет некоторо-
го снижения требований к непротиворечивости, популярный web-заместитель
Squid [91] устанавливает срок устаревания документа
Техрье,
зависящий от того,
как давно изменялся кэшируемый документ. В частности, если
Tiastjnodi/ied —
вре-
мя последней модификации кэшируемого документа (записанное владельцем),
а
Tcached —
время кэширования, то:
J^
expire ~ ^\^ cached "~ J-lastjmodified) ~'" J-cached'
Здесь а, равное 0,2,
—
это значение, полученное эмпирическим путем. До мо-
мента
Texjnre
документ считастся непротиворечивым, и заместитель с сервером не
связывается. После момента
Texpire
заместитель просит у сервера свежую копию,
даже если документ не изменялся. При а =
О
стратегия оказывается той же са-
мой, что и в предыдущем обсуждавшемся случае.
Отметим, что не изменявшийся долгое время документ не проверяется на мо-
дификацию так же часто, как документ, изменявшийся недавно. Такая стратегия
впервые была предложена в файловой системе Alex [87]. Очевидный недостаток
такого подхода состоит в том, что заместитель может возвратить неверный доку-
мент, то есть документ, более старый, чем версия, находящаяся на сервере. Еще
печальнее, что клиент не в состоянии обнаружить тот факт, что он получил уста-
ревший документ.
Альтернативой протоколу на основе извлечения является схема, при которой
сервер уведомляет заместителя об изменении документа, посылая ему сообще-
ние о недействительности хранящегося в кэше документа. Недостаток такого под-
хода состоит в том, что сервер вынужден проверять множество web-заместите-
лей, а это неминуемо приведет к проблемам масштабируемости. Однако в [83]
показано, комбинируя аренду и сообщения о недействительности документа мож-
но удерживать нагрузку на сервер в допустимых пределах.
Одной из проблем, с которыми сталкиваются разработчики кэшей web-заме-
стителей, состоит в том, что кэширование на заместителе имеет смысл, только
если документ действительно разделяется несколькими клиентами. На практике