Поделиться через


Локальное кэширование

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

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

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

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

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

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

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