с возможностью удаления некоторых просматриваемых
с возможностью удаления некоторых просматриваемых кортежей, то экономичнее всего заблокировать таблицу Tab
в режиме SIX (а до этого заблокировать в режиме IS файл, в котором располагается таблица Tab).
Таблица 9.2. Совместимость блокировок S, X, IS, IX и SIX
|
X |
S |
IX |
IS |
SIX |
- |
да |
да |
да |
да |
да |
X |
нет |
нет |
нет |
нет |
нет |
S |
нет |
да |
нет |
да |
нет |
IX |
нет |
нет |
да |
да |
нет |
IS |
нет |
да |
да |
да |
да |
SIX |
нет |
нет |
нет |
да |
нет |
В таб. 9.2 приведена таблица совместимости блокировок S, X, IS, IX и SIX. Немного поясним правила совместимости. Должно быть понятно, что для атомарных объектов разумны только блокировки в режимах S и X, для которых правила совместимости остаются такими же, как были показаны в таб. 9.1. Пусть теперь o
– это некоторый составной объект.
Тогда блокировка объекта o
в режиме X в транзакции T1
не совместима с блокировкой этого объекта в режимах X, S, IX, IS или SIX в транзакции T2. Действительно, блокировка объекта o
в режиме X в транзакции T1
направлена на то, чтобы изменять объект o
целиком. Несовместимость блокировки объекта o
в режиме X в транзакции T1
с его блокировкой в режиме X или IX в транзакции T2
устраняет конфликты транзакций T1
и T2
вида W/W. Несовместимость блокировки объекта o
в режиме X в транзакции T1
с его блокировкой в режиме S или IS в транзакции T2
устраняет конфликты транзакций T1
и T2
вида W/R. Наконец, несовместимость блокировки объекта o
в режиме X в транзакции T1
с его блокировкой в режиме SIX в транзакции T2
устраняет конфликты транзакций T1
и T2
вида W/R и W/W.
Блокировка объекта o
в режиме S в транзакции T1
совместима с блокировкой этого объекта в режимах S или IS в транзакции T2, поскольку эти блокировки в транзакциях T1
и T2
направлены только на то, чтобы только читать некоторые объекты o', входящие в o. Блокировка объекта o
в режиме S в транзакции T1
не совместима с блокировкой этого объекта в режимах X, IX или SIX в транзакции T2, поскольку любая из этих блокировок направлена на то, чтобы изменять в транзакции T2
Содержание Назад Вперед