Кэширование

В распределенных системах кэширование на стороне сервера реализуется всегда, но не снижает объема траффика.

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

1. Внутри АП каждого пользовательского процесса. Рис5. Управляется КЭШ с помощью библиотеки системных вызовов. Эффективно при повторном открытии и закрытии одних и тех же файлов одними и теми же процессами.

2. Кэширование внутри ядра. Рис6. Во всех случаях даже при попадании в КЭШ требуется выполнять системные вызовы. Файлы остаются в кэше после завершения работавшего с ними процесса.

3. Использование отдельного процесса пользовательского уровня кэш-менеджером. Рис7. Код файловой системы выносится из ядра. В основном соответствует второму варианту. Страницы пользовательского кэша при использовании виртуальной памяти должны быть фиксированы от вытеснения на диск.

Способы согласования данных между клиентским кэшем и сервером:

1. Алгоритм сквозной записи. Когда кэшируемый элемент модифицируется, новое значение помещается в кэш и одновременно на сервер.

2. Алгоритм отложенной записи файл помечается как измененный, все изменения отправляются на сервер раз в определенный промежуток времени.

3. Алгоритм «запись по закрытию». Соответствует сессионной семантике.

4. Алгоритм централизованного управления. Соответствует семантике Unix.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: