ВУЗ:
Составители:
Рубрика:
49
“блокируемого объекта”, хотя опять же ниже описаны примеры других типов
таких объектов.
2. Если транзакция А блокирует кортеж р без возможности взаимного доступа (Х-
блокировка), то запрос другой транзакции В с блокировкой этого кортежа p будет
отменен.
3. Если транзакция А блокирует кортеж р с возможностью взаимного доступа (S-
блокировка), то
• запрос со стороны некоторой транзакции В на Х-блокировку кортежа будет
отвергнут;
• запрос со стороны некоторой транзакции В на S-блокировку кортежа р будет
принят (т.е. транзакция В также будет блокировать кортеж р с помощью S-
блокировки.
Счет 1
40
Счет 2
50
Счет 3
30
Транзакция А Время Транзакция В
-
-
Извлечение кортежа
СЧЕТ1:
sum = 40
-
Извлечение кортежа
СЧЕТ2:
sum = 90
-
-
-
-
-
-
-
-
-
-
-
-
-
Извлечение кортежа
СЧЕТ 3:
sum = 110 (а не 120)
|
|
t
1
|
|
t
2
|
t
3
|
t
4
|
|
t
5
|
t
6
|
|
t
7
|
|
t
8
↓
-
-
-
-
-
-
-
Извлечение кортежа
СЧЕТ 3:
-
Обновление кортежа
СЧЕТ 3:
30 → 20
-
Извлечение кортежа
СЧЕТ 1:
-
Обновление кортежа
СЧЕТ 1:
40 → 50
-
Завершение
выполнения транзакций
Рис. 5.4 Транзакция А выполнила несовместимый анализ
Эти правила можно наглядно представить в виде матрицы совместимости, пока-
занной на рис. 5.5, и интерпретировать ее следующим образом. Рассмотрим некоторый
кортеж p и предположим, что транзакция А блокирует кортеж p различными типами
блокировки (это обозначено соответствующими символами S и X, а отсутствие
блокировки - прочерком). Предположим также, что некоторая транзакция В запрашивает
блокировку кортежа p, что обозначено в первом слева столбце матрицы на рис. 5.5 (для
полноты картины в таблице также приведен случай “отсутствия блокировки”). В других
ячейках матрицы символ N обозначает конфликтную ситуацию (запрос со стороны
транзакции В не может быть удовлетворен, и сама эта транзакция переходит в состояние
ожидания), а Y - полную совместимость (запрос со стороны транзакции В удовлетворен).
“блокируемого объекта”, хотя опять же ниже описаны примеры других типов
таких объектов.
2. Если транзакция А блокирует кортеж р без возможности взаимного доступа (Х-
блокировка), то запрос другой транзакции В с блокировкой этого кортежа p будет
отменен.
3. Если транзакция А блокирует кортеж р с возможностью взаимного доступа (S-
блокировка), то
• запрос со стороны некоторой транзакции В на Х-блокировку кортежа будет
отвергнут;
• запрос со стороны некоторой транзакции В на S-блокировку кортежа р будет
принят (т.е. транзакция В также будет блокировать кортеж р с помощью S-
блокировки.
Счет 1 Счет 2 Счет 3
40 50 30
Транзакция А Время Транзакция В
- | -
- | -
Извлечение кортежа t1 -
СЧЕТ1: | -
sum = 40 | -
- t2 -
Извлечение кортежа | -
СЧЕТ2: t3 Извлечение кортежа
sum = 90 | СЧЕТ 3:
- t4 -
- | Обновление кортежа
- | СЧЕТ 3:
- t5 30 → 20
- | -
- t6 Извлечение кортежа
- | СЧЕТ 1:
- | -
- t7 Обновление кортежа
- | СЧЕТ 1:
- | 40 → 50
- t8 -
- ↓ Завершение
Извлечение кортежа выполнения транзакций
СЧЕТ 3:
sum = 110 (а не 120)
Рис. 5.4 Транзакция А выполнила несовместимый анализ
Эти правила можно наглядно представить в виде матрицы совместимости, пока-
занной на рис. 5.5, и интерпретировать ее следующим образом. Рассмотрим некоторый
кортеж p и предположим, что транзакция А блокирует кортеж p различными типами
блокировки (это обозначено соответствующими символами S и X, а отсутствие
блокировки - прочерком). Предположим также, что некоторая транзакция В запрашивает
блокировку кортежа p, что обозначено в первом слева столбце матрицы на рис. 5.5 (для
полноты картины в таблице также приведен случай “отсутствия блокировки”). В других
ячейках матрицы символ N обозначает конфликтную ситуацию (запрос со стороны
транзакции В не может быть удовлетворен, и сама эта транзакция переходит в состояние
ожидания), а Y - полную совместимость (запрос со стороны транзакции В удовлетворен).
49
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
