Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-6 - Сеансы, транзакции и блокировки

.pdf
Скачиваний:
13
Добавлен:
28.06.2021
Размер:
569.37 Кб
Скачать

Механизмы сериализации транзакций

Методы сериализации транзакций основываются на учете этих конфликтов.

Для организации управления параллельным выполнением используют:

механизм блокировок;

механизм обработки временных меток.

Механизм блокировок

Распространен в коммерческих СУБД. Самый простой вариант – блокировка объекта на время действия транзакции.

Сначалом транзакции объект блокируется и становится недоступным другим транзакциям. По окончании транзакции объекты разблокируются.

При обращении к заблокированному объекту транзакция остается в состоянии ожидания.

Механизм ликвидирует перечисленные выше проблемы, но создает новые – задержку выполнения транзакций из-за блокировок.

Объекты захвата в реляционных базах данных

файл – физический объект (область хранения нескольких отношений и индексов);

таблица – логический объект (множество записей данного отношения);

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

запись – элементарный физический объект БД.

Блокировка на уровне поля не реализована (приводит к перегрузке менеджера блокировок).

Типы блокировок

Совместный режим блокировки – S (Shared) – разделяемый захват объекта (заблокированные объекты не изменяются и доступны другим транзакциям в режиме чтения).

Монопольный режим блокировки – X (eXclusive) – монопольный захват объекта (требуется для операций записи, удаления и модификации; заблокированные объекты недоступны для других транзакций).

Правила совместимости захватов одного объекта

Задание блокировок в транзакциях

При параллельной работе нескольких пользователей необходимо придерживаться следующей стратегии:

транзакция, предназначенная для извлечения кортежа, должна наложить S-блокировку на этот кортеж;

транзакция, предназначенная для обновления кортежа, должна наложить Х-блокировку на кортеж.

Блокировки в транзакциях задаются неявно:

запрос на извлечение кортежа – неявный запрос с S- блокировкой;

запрос на обновление кортежа – неявный запрос с Х- блокировкой кортежа.

Проблема потерянных обновлений

сучетом блокировок

Сучетом применения протокола блокировки для чередующихся операций складывается следующая

ситуация

Проблема несогласованных данных с учетом блокировок

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

Проблема несовместимого анализа с учетом блокировок

Ситуация, рассмотренная выше, с учетом блокировок будет развиваться следующим образом.

Тупиковая ситуация

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

Транзакции не могут самостоятельно обнаружить тупик, поэтому его должна обнаружить и разрешить система.

Основа обнаружения тупиков – построение графа состояний ожидания транзакций.