Лекция 26 Лекция 26 Параллельное выполнение транзакций. Типы конфликтов. Захваты и блокировки
Параллельное выполнение транзакций Непротиворечивая БД INSERT UPDATE COMMIT INSERT UPDATE ROLLBACK Противоречивая БД Транзакция 1Транзакция 2
Пропавшие обновления
Чтение «грязных» данных
Чтение несогласованных данных
Строки-призраки
Сериализация транзакций = механизм выполнения транзакций таким образом, когда результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций.
Виды конфликтов между транзакциями W-W – конфликт Транзакция 2 пытается изменять объект, измененный не закончившейся Транзакцией 1 R-W – конфликт Транзакция 2 пытается изменять объект, прочитанный не закончившейся Транзакцией 1 W-R – конфликт Транзакция 2 пытается читать объект, измененный не закончившейся Транзакцией 1
Режимы захватов совместный режим - S (Shared), означающий разделяемый захват объекта и необходимый для выполнения операции чтения объекта монопольный режим - X (eXclusive), означающий монопольный захват объекта и необходимый для выполнения операций записи, удаления и модификации
Захват и освобождение объекта Двухфазный протокол захватов объектов БД: первая фаза транзакции - накопление захватов; вторая фаза транзакции (фиксация или откат) - освобождение захватов.
Объекты захвата файл - физический объект, область хранения нескольких отношений и, возможно, индексов таблица - логический объект, соответствующий множеству записей данного отношения страница данных - физический объект, хранящий записи одного или нескольких отношений, индексную или служебную информацию запись - элементарный физический объект базы данных