Распределенная обработка данных. Найханова Л.В. - 49 стр.

UptoLike

Составители: 

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