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


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

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

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

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

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

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

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

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