Механизм постановки в очередь. Конфликты блокировок

Рубрика: Управление Параллелизмом Данных

Механизм постановки в очередь отслеживает:

  • Сеансы, ожидающие блокировок

  • Требуемый режим блокировки

  • Порядок, в котором сеансы запросили блокировку

Механизм постановки в очередь

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

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

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

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

Конфликты блокировок

Конфликты блокировок

Конфликты блокировки часто происходят, но обычно разрешаются со временем и посредством механизма постановки в очередь. В определенных редких случаях конфликт блокировок может потребовать вмешательства администратора. В случае, показанном на рисунке транзакция 2 получает блокировку для единственной строки в 9:00:00 и забывает сделать фиксацию, оставляя блокировку на месте. Транзакция 1 пытается обновить всю таблицу, требуя блокировки для всех строк, в 9:00:05. Транзакция 1 блокируется транзакцией 2, пока транзакция 2 не будет зафиксирована в 16:30:01.

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

Далее: Данные отката и Данные Восстановления. Управление Откатом

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)