Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКУД_Ванеев_3_КнспктЛкц_.doc
Скачиваний:
6
Добавлен:
27.10.2018
Размер:
1.16 Mб
Скачать

Управление на основе метода блокировок

При блокировке транзакции блокируют в доступ к данным, блокировка завершается после завершения транзакции. Для управления блокировок внутри СУБД существует менеджер блокировок - выполняет блокировки автоматически, однако, пользователь может непосредственно задавать блокировки. [LОСК]

Блокировки различаются по уровню охвата данных и с др. стороны по типу блокирования (жесткости). По уровню охвата различают

- уровень к БД, т.е. блокируются все БД. При этом конфликтов данных не будет, но СУБД будет работать медленнее, т.к. они будут выполняться последовательно.

- уровень табл.

Допускается больший уровень параллельно выполняемых транзакций, но, как следствие повышает объем работ по управлению выполнения транзакций.

-Уровень страницы.

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

- Уровень строки или отдельной записи.

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

- Уровень поля.

Типы блокировок, в зависимости от жесткости накладываемой блокировки.

-биннарная блокировка, т.е. у объекта данных есть 2 состояния: заблокировано и разблокировано, т.е. если транзакция заблокировала данные, то др. транзакция не может не изменять, не читать эти данные.

- разделяющая-исключающая.

При данном типе может быть 3 типа состояния:

  1. разблокировка;

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

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

SQL сервер включает 3-ий тип блокировки, блокировка массивного обновления, данная заключает массивное заключение данных в 2-х транзакциях в объект данных.????

Тупики, "мертвые" блокировки.

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

Используются 3 технологии:

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

2) Выявление тупиков. СУБД периодически проверяет базу на наличие взаимоблокировок или взаимоблокировка выявляется, одна из транзакций откатывается;

3) обход тупиков. При данном методе в отличие от обычных способов выполнения транзакций сначала для транзакции выполняются все необходимые блокировки, затем выполняется, потом блокировки снимаются – это метод двухфазная блокировка. При этом ухудшается параллелизм, полностью избегаются блокировки.

Управление параллелизмов с использованием меток времени

Каждой транзакции присваивается уникальная метка времени (time stamp), определяет, в какой последовательности транзакция будет представляется ресурсы БД. Должна обладать свойством уникальности и монотонности.

Если происходит конфликт операции транзакций по данным, то транзакция с более поздней меткой времени (TS) откатывается, ей присваивается новая TS.

TS используется как вспомогательный механизм управления параллелизмом. Использование меток времени приводит к накладным расходам.

Оптимистический метод

Основан на предположении, что большинство операций не конфликтует по данным. По транзакции проходит 2-3 фазы: чтение, подтверждение, запись.

1) Транзакция читает данные, выполняет расчеты и делает необходимое обновление в индивидуальной копии БД, недоступной для др. транзакций. Не полная копия, а копия тех данных, которые были обновлены.

2) Результат транзакции выполняется на целостность и непротиворечивость. Если выявляется возможность нарушений, то транзакция перезапускается. Если нарушений нет, то переход к фазе записей.

3) В БД вносятся все изменения.

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

Восстановление БД – перевод ее из текущего состояния с нарушенной целостностью, предшествующая целостности состояния.

При этом можно разделить 2 варианта восстановления:

1) с использованием средств администрирования, т. е. это полное восстановление БД из одной резервных копий.

2) Это восстановление на основе отката результатов выполнения транзакций. Данный метод не приводит к нарушению работы СЦБД и часто выполняется автоматически.