Базы данных. Вводный курс


Гранулированные синхронизационные блокировки - часть 3


объект o

целиком или какой-либо объект o', входящий в o. Несовместимость блокировки объекта o

в режиме S в транзакции T1

с блокировкой этого объекта в режимах X, IX или SIX в транзакции T2, тем самым, устраняет конфликты транзакций T1

и T2

вида R/W.

Блокировка объекта o

в режиме IХ в транзакции T1

совместима с блокировкой этого же объекта в режимах IS или IX в транзакции T2. Действительно, блокировка объекта o

в режиме IX в транзакции T1

направлена на то, чтобы в этой транзакции изменять какой-либо объект o', входящий в o, а блокировка этого же объекта в режиме IS в транзакции T2

– на то, чтобы читать в транзакции T2

какой-либо объект o'', входящий в o. Если объекты o'

и o''

– разные, то конфликт транзакций T1

и T2

не возникнет. Если o'

= o'', то перед изменением этот объект будет заблокирован в транзакции T1

в режиме X, а перед чтением – в транзакции T2

в режиме S. Несовместимость этих блокировок позволит избежать конфликта транзакций T1

и T2

вида W/R, и для этого не требуется несовместимость блокировок IX и IS объекта o. Аналогично обосновывается совместимость блокировок IX и IX. Блокировка IХ не совместима с блокировкой S, поскольку иначе мог бы проявиться конфликт транзакций T1

и T2

вида W/R. Блокировка IХ не совместима с блокировкой X, поскольку иначе мог бы проявиться конфликт транзакций T1

и T2

вида W/W. Наконец, блокировка IХ не совместима с блокировкой SIX, поскольку иначе мог бы проявиться конфликт транзакций T1

и T2

вида W/R или W/W.

Блокировка объекта o

в режиме IS в транзакции T1

совместима с блокировкой этого же объекта в режимах S, IS, IX или SIX в транзакции T2. Совместимость с блокировкой в режиме S или IS уже обосновывалась. Покажем, что блокировка объекта o

в режиме IS в транзакции T1

совместима с блокировкой того же объекта в режиме IX в транзакции T2. Действительно, блокировка объекта o

в режиме IS в транзакции T1

направлена на то, чтобы в этой транзакции читать какой-либо объект o', входящий в o, а блокировка этого же объекта в режиме IX в транзакции T2




- Начало -  - Назад -  - Вперед -