Лекции / Л-6 - Сеансы, транзакции и блокировки
.pdfМеханизмы сериализации транзакций
Методы сериализации транзакций основываются на учете этих конфликтов.
Для организации управления параллельным выполнением используют:
механизм блокировок;
механизм обработки временных меток.
Механизм блокировок
Распространен в коммерческих СУБД. Самый простой вариант – блокировка объекта на время действия транзакции.
Сначалом транзакции объект блокируется и становится недоступным другим транзакциям. По окончании транзакции объекты разблокируются.
При обращении к заблокированному объекту транзакция остается в состоянии ожидания.
Механизм ликвидирует перечисленные выше проблемы, но создает новые – задержку выполнения транзакций из-за блокировок.
Объекты захвата в реляционных базах данных
файл – физический объект (область хранения нескольких отношений и индексов);
таблица – логический объект (множество записей данного отношения);
страница данных – физический объект, хранящий записи одного или нескольких отношений, индексную или служебную информацию;
запись – элементарный физический объект БД.
Блокировка на уровне поля не реализована (приводит к перегрузке менеджера блокировок).
Типы блокировок
Совместный режим блокировки – S (Shared) – разделяемый захват объекта (заблокированные объекты не изменяются и доступны другим транзакциям в режиме чтения).
Монопольный режим блокировки – X (eXclusive) – монопольный захват объекта (требуется для операций записи, удаления и модификации; заблокированные объекты недоступны для других транзакций).
Правила совместимости захватов одного объекта
Задание блокировок в транзакциях
При параллельной работе нескольких пользователей необходимо придерживаться следующей стратегии:
транзакция, предназначенная для извлечения кортежа, должна наложить S-блокировку на этот кортеж;
транзакция, предназначенная для обновления кортежа, должна наложить Х-блокировку на кортеж.
Блокировки в транзакциях задаются неявно:
запрос на извлечение кортежа – неявный запрос с S- блокировкой;
запрос на обновление кортежа – неявный запрос с Х- блокировкой кортежа.
Проблема потерянных обновлений
сучетом блокировок
Сучетом применения протокола блокировки для чередующихся операций складывается следующая
ситуация
Проблема несогласованных данных с учетом блокировок
Показано чередующееся выполнение операций согласно описанному выше протоколу блокировки.
Проблема несовместимого анализа с учетом блокировок
Ситуация, рассмотренная выше, с учетом блокировок будет развиваться следующим образом.
Тупиковая ситуация
Две транзакции одновременно находятся в состоянии ожидания, причем для продолжения работы каждая ожидает прекращения выполнения другой транзакции.
Транзакции не могут самостоятельно обнаружить тупик, поэтому его должна обнаружить и разрешить система.
Основа обнаружения тупиков – построение графа состояний ожидания транзакций.