Базы данных

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

Тем самым, выделяются два основных режима захватов:

·   совместный режим – S(Shared), означающий разделяемый захват объекта и необходимый для выполнения операции чтения объекта;

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

В СУБД, основанных на архитектуре «клиент–сервер», наиболее распространен подход, реализующий соблюдение протокола двухфазного блокированияобъектов БД. Перед выполнением любой операции над объектом БД от имени транзакции запрашивается захват объекта в совместном или монопольном режиме. Выполнение транзакции разбивается на две фазы:

·   фаза роста – накопление захватов (установление блокировок);

·   фазафиксации или отката – освобождение захватов (снятие блокировок).

Реализуемость транзакций гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют правилу: «Ни одна блокировка от имени какой-либо транзакции не должна устанавливаться, пока не будет снята ранее установленная блокировка».

В реляционных БД объектами для захвата могут быть:

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

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

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

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

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

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

предыдущаяследующая