Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

16.2 Как и почему они используются?

Кэш серверы периодически обмениваются дайджестов друг с другом.

Когда поступает запрос на объект (URL) получено от клиента кэш может дайджестов от своих сверстников, чтобы узнать, какие из его коллег (если таковые имеются) этого объекта. Кэш может затем запросить объекта от ближайших сверстников (Squid использует NetDB базы данных, чтобы определить это).

Обратите внимание, что Squid только сделает Дайджест запросов в этих дайджестов, которые включены . Это приведет к отключению сверстниками дайджест IFF она не может принести действительную дайджеста для этого узла. Это позволит, что коллеги переварить еще раз, когда допустимым взяли.

Проверки в сборнике очень быстро, и они устраняют необходимость каждого запроса запросов к сверстникам. Следовательно:

  • Задержка устраняется и время ответа клиента должны быть улучшены.

  • Использования сети может быть улучшена.

Обратите внимание, что использование кэш Сборники (для запроса содержимого кэша сверстников) и генерации кэша Digest (для извлечения со стороны сверстников) независимы. Таким образом, это возможно для кэша, чтобы освободить дайджест доступны для сверстников, а не использовать функциональность себе и наоборот.

16.3 Что такое теория за кэш дайджесты?

Кэш Сборники основаны на Блума фильтры - они способ, представляющий собой набор ключей с возможностями поиска, где поиск средств "является ключевым в фильтре или нет?".

При создании кэша дайджест:

  • Вектор (1 одномерный массив) м биты выделяются, в котором все биты первоначально установлен в 0.

  • Число, к, независимых хеш-функции выбраны, h1, h2, ..., HK, с диапазоном {1, ..., т} (т.е. ключ хэшированного с любой из этих функций дает значение между 1 и т включительно).

  • Набор ключей N на операцию обозначены: A = {A1, A2, A3, ...,}.

Добавление ключа

Чтобы добавить ключевой значение каждого хеш-функции для этого ключа вычисляется. Таким образом, если ключ был обозначать , то H1 (), h2 (), ..., HK () рассчитываются.

Значение каждой хэш-функции для этого ключа представляет собой индекс в массиве и соответствующие биты устанавливаются в 1. Так, с 6 дайджест хэш-функции будет иметь 6 бит должен быть установлен на 1 для каждого ключа добавил.

Следует отметить, что добавление ряда различных ключей может привести один конкретный бит должен быть установлен на 1 несколько раз.

Запрос ключа

Для запроса на существование ключ индексы в массиве вычисляются хэш-функций, как указано выше.

  • Если любой из соответствующих битов в массиве 0, то ключ не присутствует.

  • Если все соответствующие биты в массиве 1, то ключ, вероятно , присутствует.

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

Удалению ключа

Для удаления ключа, это не возможно просто установить соответствующие биты 0, так как любой из этих битов могло быть установлено в 1 путем добавления другого ключа!

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

  • При добавлении ключей, установить соответствующие биты, чтобы 1 и увеличиваются соответствующие счетчики.

  • При удалении ключа, уменьшать соответствующие счетчики (а> 0), а если счетчик достигнет 0 , то соответствующий бит установлен в 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]