Синхронизация запросов к БД с использованием блокировок. Элементы БД. Необходимость блокировки элементов БД. Элемент как примитив синхронизации. Легальное расписание

Согласованное выполнение транзакций(пользователь не должен видеть несогласованных данных).

Сериализация транзакций

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

- План (способ) выполнения набора транзакций называется сериальным, если ре­зультат совместного выполнения транзакций эквивалентен результату некото­рого последовательного выполнения этих же транзакций.

Наиболее распространённые метод для реализации сериализаций и транзакций - метод блокировки. БД разбивается на эл-ты, которые можно блокировать. Когда нужно, чтобы некоторый объект не изменялся без ведома транзакции он блокируется. Блокировки исключают конфликты: чтение-запись, запись-чтение, запись-запись. Размер блокируемых элементов: большие(БД, совокупность связанных отношений, отношение), малые(совокупность кортежей, отдельные кортежи, компоненты кортежей).

Два типа блокировки:

1.нежесткая – применяется при чтении. Это означает, что другие транзакции, осуществляющие чтение получают доступ к этому.

2.жесткая – использование приводит к возникновению тупиков.

Блокировка элемента – до начала чтения или записи(транзакция действует как примитив синхронизации). После всех действий – разблокировка.

Легальное расписание — расписание правильно оформленных транзакций.

Бесконечные ожидания. Решение проблемы бесконечного ожидания.

 T1: LOCK A;……………………; UNLOCK A;

 Т2: LOCK A;……………………; UNLOCK A;

 Т3: LOCK A;……………………; UNLOCK A;

 Т4: LOCK A;……………………; UNLOCK A;

Состояние такого рода называется бесконечным ожиданием

система предоставления блокировок должна регистрировать все неудовлетворенные немедленно запросы и предоставлять

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

Эта стратегия («первым вошел — первым обслуживается») устраняет бесконечные ожидания

Тупики. Способы предотвращения тупиков.

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

Для возникновения тупика необходимо 4 условия:

1.Взаимоисключение, когда процессы требуют монопольного предоставления ресурса.

2.Ожидание дополнительного ресурса, когда процессы удерживают ресурсы и требуют дополни-тельных ресурсов.

3.Неперераспределяемости ресурсов, когда ресурсы нельзя отобрать у процессов до завершения их работы.

4.Кругового ожидания, когда существует кольцо процессов, удерживающих ресурсы друг друга.

Предотвращение тупиков:

-Путем исключения одного из необходимых условий возникновения тупиков, кроме условий взаимоисключения (это объективное условие).

-Условие ожидания дополнительных ресурсов можно нарушить, если потребовать, чтобы процессы запрашивали сразу все ресурсы. (Недостаток - снижение уровня мультипрограммирования и нерациональное использование ресурсов).

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

-Условие кругового ожидания можно предотвратить, если процессы запрашивают ресурсы в заранее определенном порядке, то есть ресурсы имеют уникальные упорядоченные номера, которые распределяются в соответствии с некоторым планом (планирование распределения ресурсов).

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

Понятие расписания совокупности транзакций. Сериализуемое расписание.

Транзакция - это разовый прогон программы, реализующей запрос, при котором БД остается в состоянии целостности до и после выполнения транзакции.

Но в процессе выполнения транзакции целостность БД может нарушаться.

Расписание совокупности транзакций - это порядок, в котором выполняются элементарные шаги этих транзакций.

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

Расписание – порядок выполнения элементарных операций, образующих транзакций

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: