Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tranzaktsii_i_tselostnost_bazy_dannykh.docx
Скачиваний:
5
Добавлен:
17.09.2019
Размер:
99.89 Кб
Скачать

Рассмотрим описанные выше проблемы с учетом применения механизмов блокировки:

Проблема потери результатов обновления.

Операция обновления транзакции A в момент времени t3 не будет выполнена, так как задаваемая X – блокировка вступает в конфликт с S – блокировкой, заданная транзакцией B в момент времени t2, таким образом транзакция A переходит в состояние ожидания. По аналогичным причинам транзакция B переходит в состояние ожидания в момент времени t4. Не смотря на то, что в первом случае результаты любых обновлений не будут утрачены. Решение этой проблемы с помощью блокировки возможно только при решении проблемы тупиковой ситуации.

Проблема незафиксированной зависимости.

Операция B в момент t2 не будет выполнена, так как задаваемая блокировка вступает в конфликт с X – блокировкой от A. Получаем, что B ожидается до тех пор, пока не будет прекращено выполнение A. Получим, что X – блокировка будет снята и транзакция B может быть выполнена.

Проблема несовместного анализа.

Операция обновления для транзакции B в момент t6 не будет выполнена, так как задаваемая при этом X – блокировка кортежа N1 вступает в конфликт с S – блокировкой, заданной транзакцией A в момент t1. Получаем, что транзакция B переходит в состояние ожидания.

Аналогично операция извлечения A в момент времени t7 не будет выполнена из-за конфликта между S – блокировкой и заданной X – блокировкой в момент t4. Получаем, что A перейдет в состояние ожидания.

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

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

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

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

Общепринятым критерием правильности обработки кортежей является способность к упорядочиванию.

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

Отдельные транзакции считаются временными, если при их выполнении БД переходит из одного непротиворечивого состояния в другое непротиворечивое состояние.

Выполнение «одна за другой» тоже верно в любой последовательности.

Чередующееся выполнение транзакций является верным, если оно эквивалентно некоторому последовательному выполнению, то есть оно подлежит упорядочению.

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