Файл: Тема 27. Параллельная обработка данных.pdf

Добавлен: 20.10.2018

Просмотров: 628

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

  REPEATABLE  READ  (повторяющееся  чтение).  Транзакция  не  имеет 

доступа  к  промежуточным  или  окончательным  результатам  других 

транзакций. Возможны строки-призраки. 

  READ  COMMITED  (подтвержденное  чтение).  Транзакция  не  имеет 

доступа к промежуточным результатам других транзакций. Возможны 

несогласованные данные и строки призраки. 

  READ 

UNCOMMITED 

(грязное  чтение).  Транзакция  видит 

промежуточные  и  несогласованные  данные  и  строки-призраки. 

Предотвращаются пропавшие обновления. 

В  стандарте  SQL  2  уровень  изолированности  задается  оператором  SET 

TRANSACTION: 

SET  TRANSACTION    …  ISOLATION  LEVEL  [{SERIALAZABLE  | 

REPEATABLE READ | READ                COMMITED | READ UNCOMMITED}]  

[{READ WRITE | READ ONLY}] 

 Гранулированные синхронизационные захваты 

Объекты блокирования могут быть разного уровня: БД, файл, отношение, 

страница,  кортеж.  Чем  крупнее  объект,  тем  меньше  блокировок  потребуется 

программе,  тем  меньше  накладные  расходы.  Одновременно  возрастает 

вероятность конфликта транзакций, уменьшается степень их параллельности. 

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

минимизации 

расходов, 

уменьшения 

конфликтности 

и 

увеличения 

параллельности 

был 

предложен 

механизм 

гранулированных 

синхронизационных  захватов.  В  соответствии  с  ним  объект  может  быть 

захвачен  в  режимах  S,    X,  IS,  IX,  SIX.  Используется  специальный  протокол: 

перед  захватом  объекта  в  режиме  S  или  X  соответствующий  объект  более 

высокого уровня должен быть захвачен в режиме IS, IX или SIX. 

Режим IS (Intended for Shared Lock) по отношению к составному объекту 

O означает намерение захватить в будущем некоторый входящий в  O объект в 

S-режиме. 


background image

Режим  IX  по  отношению  к  составному  объекту  O  означает  намерение 

захватить в будущем некоторый входящий в O объект в X-режиме. 

Режим  SIX  –  совместный  захват  объекта  O  с  намерением  впоследствии 

захватить входящие в него объекты в монопольном режиме. 

Предикатные синхронизационные захваты 

Метод  гранулированных  синхронизационных  захватов  не  решает 

проблему  фантомов.  Эта  проблема  решается  методом  предикатных 

синхронизационных захватов.  

Суть  метода.  Рассматривается  захват  двумя  транзакциями  одного 

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

обрабатываемых  кортежей  отношения.  Если  множества  кортежей  не 

пересекаются,  то  транзакции  можно  выполнять  параллельно,  в  противном 

случае транзакции выполняются последовательно.