Кэширование интернет-страниц

В процессе передачи информации по сети может использоваться кэширование интернет-страниц — процесс сохранения часто запрашиваемых документов на (промежуточных) прокси-серверах или машине пользователя, с целью предотвращения их постоянной загрузки с сервера-источника и уменьшения трафика. Таким образом, информация перемещается ближе к пользователю. Управление кэшированием осуществляется при помощи HTTP-заголовков.

Как вариант, кэширование веб-страниц может осуществляться с помощью CMS конкретного сайта для снижения нагрузки на сервер при большой посещаемости (например, кэширование часто стало использоваться Vkontakte). Кэширование может производиться как в память, так и в файловый кэш (кэш на файлах). [8] Недостаток кеширования заключается в том, что изменения внесенные на одном браузере могут не сразу отражаться в другом браузере, в котором данные берутся из кеш-памяти.

Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.

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

Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша. Если в кэше не найдена запись, содержащая затребованный элемент данных, то он читается из основной памяти в кэш, и становится доступным для последующих обращений. Такой случай называется промахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий в кэш.

Например, веб-браузер проверяет локальный кэш на диске на наличие локальной копии веб-страницы, соответствующей запрошенному URL. В этом примере URL — это идентификатор, а содержимое веб-страницы — это элементы данных.

Если кэш ограничен в объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения.

При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи.

В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти.

В кэше с отложенной записью (или обратной записью) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента. Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации (изменённый или «грязный»). Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных.

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

Алгоритмы работы поисковых систем — прямой поиск и алгоритм обратных (инвертированных) индексов

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

Поэтому для эффективного поиска в больших объемах данных был разработан алгоритм обратных (инвертированных) индексов. И что примечательно, именно этот алгоритм используется всеми крупными поисковыми системами в мире. Поэтому на нем мы остановимся подробнее и рассмотрим принципы его работы.

При использовании алгоритма обратных (инвертированных) индексов, поисковые системы преобразовывают документы в текстовые файлы, содержащие список всех имеющихся в документе слов. Слова в таких списках (индекс-файлах) располагаются в алфавитном порядке и рядом с каждым словом указаны в виде координат те места в документе, где это слово встречается. Кроме позиции в документе, для каждого слова приводятся еще и другие параметры, определяющие его значение в документе.

Если вы вспомните, то во многих книгах (в основном технических или научных) на последних страницах приводится список слов, используемых в данной книге, с указанием номеров страниц, где эти слова встречаются в этой книге. Конечно же, этот список не включает всех слов, используемых в книге, но тем не менее может служить примером построения индекс-файла с помощью алгоритма обратных (инвертированных) индексов.

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

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

Наши рекомендации