Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RIS.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.4 Mб
Скачать
  1. Алгоритмы взаимного исключения: постановка задачи, централизованный алгоритм, распределенный алгоритм, алгоритм кольцевого маркера.

Напоминание.

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

Алгоритмы взаимного исключения: централизованный алгоритм.

Один процесс, работающий с распределенным ресурсом

Три процесса, работающих с распределенным ресурсом

Алгоритмы взаимного исключения: распределенный алгоритм. Надежная связь между узлами. Каждый узел, должен знать о других узлах участвующих в синхронизации.

Принцип:

  • процесс не собирается входить: на все запросы enter(метка времени) отвечает OK;

  • процесс собирается войти в критическую область: рассылает всем запрос enter(метка времени) и ждет от всех OK; если получил от всех OK выполняет действие;

  • процесс собирается войти в критическую область (разослал enter(метка времени)) и одновременно получает enter(метка времени) от другого процесса: сравнивает свою метку времени и чужую; если чужая метка с меньшим временем – отсылает OК и ждет OK от всех других; если собственное время меньше, то чужой enter(метка времени) поместить в очередь, после выхода всем тем, кто в очереди – оправляется OK и соответствующие enter(метка времени) извлекаются из очереди;

  • процесс вошел в критическую область: поступает enter(метка времени) – помещается в очередь; после выхода всем тем, кто в очереди – оправляется OK и соответствующие enter(метка времени) извлекаются из очереди.

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

Сравнение: общая проблема – разрыв связи; централизованный алгоритм – сбой координатора; распределенный алгоритм – сбой любого процесса; маркер – потеря маркера (сбой в одном из процессов).

  1. Распределенная транзакция: определение транзакции, свойства ACID, определение распределенной транзакции, реализация транзакций, изолированность транзакций, совместимость блокировок, архитектура механизма распределенных транзакций. Двухфазная блокировка.

Напоминание: транзакция – одна или несколько операций, которые все вместе выполняются или не выполняются вообще (главное свойство - атомарность).

Напоминание: ACID – атомарность, согласованность, изолированность, долговечность. Изолированность – при выполнении параллельном выполнении транзакции, результат должен быть таким же, как при их выполнении последовательно. Бывают разные уровни изолированности (для некоторых это правило не будет выполняться).

Напоминание: BEGIN TRAN, SELECT, INSERT, DELETE, UPDATE, COMMIT, ROLLBACK

Пример: два счета в банке, с одного деньги списывают, на два других помещают.

Постановка задачи: несколько БД (для резервирования билетов на самолет из аэропорта вылета), БД находятся в разных городах (Минск, Афины, Вена), заказ билетов по маршруту Минск-Афины-Вена-Минск.

BEGIN TRAN

EXEC RES(mnsk, aphn)

EXEC RES(aphn, vn)

EXEC RES(vn, mnsk)

COMMIT

Распределенная транзакция: транзакция, в которой выполняются операции в БД, расположенных на разных компьютерах (серверах).

Реализация транзакций (рабочее множество):виды блокировки зависят уровня изолированности и от совместимости

Реализация транзакций: изолированность

Пример таблицы совместимости блокировок

select

insert

update

delete

select

+

+

-

-

insert

+

-

-

update

-

-

delete

-

Реализация транзакций (журнал с упреждающей записью):

Архитектура механизма распределенной транзакции:

Двухфазная блокировка (Two-Phase Locking, 2PL):

планировщик получает от менеджера транзакций операцию О транзакции T; проверяет конфликтует или нет по блокировкам других операций; если да – операция О и транзакция T переводятся в очередь ожидания; если нет – добавляется в рабочую область; в рабочей области могут находится различные части разных транзакций; операции из рабочей области планировщика поступают в менеджеру данных; некоторые транзакции могут быть выполнены частично, но не зафиксированы; фиксация или откат осуществляется менеджером транзакции;

планировщик никогда не снимает блокировку, до тех пор, пока не получит от менеджера данных уведомление о завершении операции;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]