Особенности использования транзакций в распределенных системах
Транзакция – это высокоуровневый механизм синхронизации доступа к ресурсу. Операции, произведённые между началом и концом транзакции её участниками, выполняются либо все, либо ни одна.
Свойства транзакций:
1. Упорядочиваемость – если несколько Т выполняется одновременно, результат выглядит как если бы они выполнялись последовательно.
2. Неделимость – процессы, не участвующие в транзакции, не видят её промежуточные результаты.
3. Постоянство – после фиксации (завершения) транзакции никакой сбой не отменяет её результат.
Реализация транзакции:
1. Участники транзакции используют индивидуальное рабочее пространство, в котором происходят все изменения до фиксации.
2. Перед изменением любого блока данных заносится запись об изменении в журнал регистрации.
3. Запись включает номер транзакции, имя файла, имя блока, старые и новые значения. При прерывании транзакции по журналу делается откат.
В распределенных системах используется протокол для фиксации транзакции.
Один из процессов выбирается в качестве координатора.