Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая

Вид материалаКурсовая

Содержание


7.2.Согласованность кэша
Эвристика, основанная на фиксированном времени хранения.
Подход, основанный на времени жизни (TTL – Time То Live).
Время истечения срока годности определено в поле заголовка ответа.
Частота запросов кэшированного ресурса.
Время последней модификации ресурса.
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11
^

7.2.Согласованность кэша




Исходный сервер определяет время актуальности кэшированного ответа. Кэш же должен перед тем, как отправить запрашивающему клиенту кэшированный ре­сурс, убедиться, что он еще актуален. Согласованность кэша - хорошо изученная проблема для всех форм кэширования на компьютерах. Первоначально согласован­ность изучалась в связи с использованием многоуровневой памяти компьютера - кэшированная копия файла могла измениться на диске. Были предприняты попыт­ки минимизировать объем затрат, требуемых для проверки актуальности, однако цена поддержания согласованности менялась в зависимости от контекста. Для Web-кэшей в последнее время были предложены различные алгоритмы поддержа­ния согласованности. Согласованность кэша может зависеть от ресурсов и полити­ки сохранения элементов в кэше. Кэши могут просто возвращать более старое кэшированное значение с добавлением признака устаревания ресурса. Одна из при­чин такого поведения - отключение исходного сервера или перегрузка кэша. Заголовок Warning протокола НТТР/1.1 может использоваться для указания того, что возвращаемое кэшированное значе­ние возможно уже устарело. Агент пользователя может сделать эту информацию доступной пользователю.

В распределенных файловых системах проблема кэширования была также глу­боко изучена. Web отличается от распределенных файловых систем по ряду при­знаков. Обновление ресурса происходит только в одном месте - на исходном сер­вере, а в распределенных файловых системах это обновление может происходить в различных местах. Однако в Web присутствие большого числа прокси-серверов и возможность кэшировать части ответа меняют картину. Кроме того, в Web цепа проверки актуальности выше из-за необходимости установления соединения с ис­ходным сервером.

Протокол НТТР/1.1 обеспечивает несколько путей для поддержания согласо­ванности кэша. Если исходный сервер задает определенное время истечения срока годности ресурса, то прокси-сервер, обеспечивающий семантическую прозрачность кэширования, обязан строго придерживаться этих сроков. Единственным исключе­нием может быть наличие в заголовке запроса клиента директивы Cache-Control: only-if-cached, которая заставляет прокси-сервер возвратить кэшированный ответ без проверки его актуальности на исходном сервере. Если же исходный сервер не задает срок годности ресурса, то прокси-сервер может использовать эвристически вычисленное время годности. Это время часто связывается с проверкой актуально­сти. Наиболее общим подходом к проверке актуальности в Web является запрос с методом Get или Head и заголовком If-Modified-Since. Этот заголовок включает время последней модификации ресурса, ко­торый был указан исходным сервером. В некоторых случаях время создания ответа может совпадать со временем последней модификации. Атрибуты содержимого протокола НТТР/1.1 в совокупности с заголовком if-Match могут быть использо­ваны для выполнения проверки актуальности для версий ресурсов. Исходный сервер может вернуть полную копию ресурса (вместе с от­ветом 200 OK) или ответ 304 Not Modified без тела ответа. Однако проверка акту­альности требует полного цикла HTTP-обмена запросом и ответом.

Если кэширующий прокси-сервер посылает запрос для проверки актуальности при каждом запросе ресурса, то такая политика кэша называется строго согласо­ванной. Если кэш использует эвристические процедуры для оценки сроков годно­сти кэшированного ответа без взаимодействия с исходным сервером, то такая по­литика называется слабо согласованной. В зависимости от вида кэша и типичного набора кэшированпых ответов может быть подходящей либо первая, либо вторая политика. Эвристика, основанная на фиксированном времени храпения, а также эвристики, основанные на времени жизни, относятся к слабо согласованным поли­тикам. Эти слабо согласованные подходы отличаются тем, какой компонент берет ответственность за определение периода актуальности ресурса:
  1. ^ Эвристика, основанная на фиксированном времени хранения. Кэш может хранить ответ в течение фиксированного интервала времени без проверки ак­туальности. Однако сервер обещает уведомить кэш в случае изменения ресур­са в течение периода храпения. После истечения этого периода, кэш может проверить ресурс на актуальность. Данный подход, описанный в [LC97], пе­реносит накладные расходы по проверке актуальности ресурсов на сервер, ко­торый теперь должен взаимодействовать со всеми кэширующими прокси-сер­верами, которым он обещал сообщить об обновлениях ресурсов. Если исход­ный сервер должен уведомить большое число прокси-серверов, то этот способ не слишком подходит. Отметим, что при этом требуется взаимодействие для того, чтобы сервер мог уведомить кэши об истечении времени хранения. Ал­горитмы, основанные на фиксированном времени хранения, широко обсужда­ются в литературе, по они еще не реализованы в популярных кэширующих прокси-серверах. Одна из причин заключается в том, что они требуют совме­стных действий, сервера и кэша.
  2. ^ Подход, основанный на времени жизни (TTL – Time То Live). С каждым ответом связано время истечения срока его годности. Когда этот интервал вре­мени заканчивается, ответ рассматривается как устаревший. В течение срока годности кэш не перепроверяет его актуальность и, тем самым, остается воз­можность того, что будет использован устаревший ответ. Значение TTL мо­жет изменяться в зависимости от ресурса и основано на следующих факторах:
  • ^ Время истечения срока годности определено в поле заголовка ответа. Кэш может его использовать непосредственно или модифицировать на основе своей политики. Если время годности ресурса не указано, то кэш может назначить определенное значение TTL для ресурсов данного вида.
  • ^ Частота запросов кэшированного ресурса. Ресурсам, запрашиваемым чаще, можно назначить большее TTL.
  • Мобильная среда. Непостоянное подключение и низкая скорость соедине­ния пользователей мобильных устройств может привести к зада­нию специальных значений TTL для ответов, запрашиваемых такими пользователями.
  • ^ Время последней модификации ресурса. Адаптивный алгоритм может предположить, что недавно модифицированный ресурс может снова изме­ниться. Следовательно, кэш может назначить меньшее значение TTL для недавно измененного ресурса. Кэшированному ответу может быть назначено большее TTL, если на исходном сервере ресурс не изме­нялся в течение длительного времени. Информация о времени изменения берется из заголовка ответа Last Modified.

Подходы, основанные на TTL, являются достаточно популярными.

Поддержание согласованности может оказать существенное влияние на время от­вета кэша, т.к. каждый запрос для проверки актуальности требует установления со­единения с исходным сервером.