Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОС_1.docx
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
1.15 Mб
Скачать

Кэширование в распределенных системах. Организация и управление кэшированием.

Может производиться на стороне сервера или на стороне клиента.

На стороне сервера файл кэшируется в его памяти. //Практически всегда реализуется

Кэширование на стороне клиента – в памяти клиента.

Модели:

1. Кэширование внутри каждого процесса.

У правляется с помощью библиотеки системных вызовов.

После завершения процесса все модифицированные файлы записываются на заданный сервер.

Используется, если процессор часто открывает/закрывает одни и те же файлы.

2. Кэширование в ядре.

Во всех случая, даже при попадании в КЕШ требуется выполнять системные вызовы, но файлы остаются в КЭШ и после завершения процессов.

3. Использование КЭШ-менеджеров

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

Алгоритмы управления кэшированием:

  1. Сквозная запись – когда кэшируемый элемент изменяется, все изменения немедленно отправляются на сервер.

  2. Отложенная запись – при модификации клиент помечает, что файл изменен. Все изменения отправляются на сервер вместе раз в определенный промежуток времени.

  3. Запись по закрытию – удовлетворяет сессионной семантике.

  4. Централизованное управление – файл может быть открыт для чтения сколько угодно раз, но только 1 раз для записи.

Репликация в распределенных системах.

Репликация - это асинхронный перенос изменения данных исходной файловой системы в системы других узлов распределенной сети.

Если система производит репликацию без вмешательства пользователя – она называется репликационно прозрачной.

Способы репликации:

1.Точная репликация файлов.

Процесс, создающий файл, сам создаёт копии на других серверах.

2.Ленивая репликация файлов – создается одна копия на выбранном сервере, который автоматически позднее реплицирует её на другие.

3.Групповая репликация – при создании файла адресуются не один сервер, а группа. Все копии создаются одновременно.

Алгоритмы изменения реплицированных файлов

  1. Репликация первой копии – требует чтобы один сервер был выделен как первичный. Остальные являются вторичными. Когда реплицированный файл модифицируется, изменения вносятся на первичный сервер, затем им рассылаются на вторичные. Из-за отказа первичного сервера он может не успеть оповестить об изменениях вторичные, поэтому перед модификацией первичной копии все изменения записываются в журнал. Основной недостаток – низкая надёжность

  1. Голосование – если есть N копий файла, то изменения вносятся в любые W копий с отслеживанием версий. При запросе на чтение он отправляется к любым R узлам при том, что в системе должно выполняться правило W+R>N. Существует модификация этого алгоритма, «голосование с приведением». Используется в системах, где операция чтения встречается гораздо чаще, чем операции записи, R – небольшое, W – близкое к N. При этом выход из строя нескольких серверов может привести к отсутствию кворумов (необходимого количества). Для каждого отказавшего или отключенного сервера в этом случае создается фиктивный сервер без дисков, который не участвует в кворуме чтения, но может участвовать в кворуме записи. Запись считается успешной, если хотя бы один сервер был настоящим. Когда отказавший сервер перезапускается, он создает запрос на чтение, чтобы обнаружить и скопировать себе последнюю версию реплицированного файла.