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

UptoLike

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

51
Транзакция А Время Транзакция В
-
-
Извлечение кортежа р
(задание S-блокировки
для р)
-
-
-
-
Обновление кортежа р
(задание Х-блокировки
для р)
Ожидание
Ожидание
Ожидание
Ожидание
Ожидание
Ожидание
|
|
t
1
|
|
t
2
|
|
t
3
|
|
t
4
|
|
|
-
-
-
-
-
Извлечение кортежа р
(задание S-блокировки
для р)
-
-
-
-
Обновление кортежа р
(задание Х-блокировки
для р)
Ожидание
Ожидание
Ожидание
Рис. 5.6. Хотя обновления не утрачиваются, но в момент времени t
4
возникает тупиковая
ситуация
Проблема незафиксированной зависимости
На рис. 5.7 и 5.8 приведены в измененном виде примеры, показанные ранее на рис.
5.2 и 5.3 соответственно. Они демонстрируют чередующееся выполнение операций
согласно описанному выше протоколу блокировки. Операция для транзакции А в момент
времени t
2
(извлечение на рис. 5.7 и обновление на рис. 5.8) не будет выполнена. Дело в
том, что она является неявным запросом с заданием блокировки для кортежа p, а этот
запрос вступает в конфликт с Х-блокировкой, уже заданной транзакцией В.
Транзакция А Время Транзакция В
-
-
-
-
-
Извлечение кортежа р
(задание S-блокировки для
р)
Ожидание
Ожидание
Ожидание
Итог: извлечение кортежа р
(задание S-блокировки для
р)
-
|
|
t
1
|
|
t
2
|
|
t
3
|
t
4
|
-
-
Обновление кортежа р
(задание Х-блокировки для р)
-
-
-
-
Окончание или отмена
выполнения
(снятие Х-блокировки для р)
Рис. 5.7. Транзакция А предохраняется от выполнения операций
с незафиксированным изменением в момент времени t
2
Таким образом, транзакция А переходит в состояние ожидания до тех пор, пока не
будет прекращено выполнение транзакции В (до операции окончания или отмены вы-
          Транзакция А                       Время                        Транзакция В
                -                               |                               -
                -                               |                               -
      Извлечение кортежа р                     t1                               -
     (задание S-блокировки                      |                               -
           для р)                               |                               -
                -                              t2                     Извлечение кортежа р
                -                               |                    (задание S-блокировки
                -                               |                          для р)
                -                              t3                               -
     Обновление кортежа р                       |                               -
     (задание Х-блокировки                      |                               -
           для р)                               t4                              -
            Ожидание                            |                    Обновление кортежа р
            Ожидание                            |                    (задание Х-блокировки
            Ожидание                            |                          для р)
            Ожидание                           ↓                           Ожидание
            Ожидание                                                       Ожидание
            Ожидание                                                       Ожидание
       Рис. 5.6. Хотя обновления не утрачиваются, но в момент времени t4 возникает тупиковая
                                          ситуация

Проблема незафиксированной зависимости
     На рис. 5.7 и 5.8 приведены в измененном виде примеры, показанные ранее на рис.
5.2 и 5.3 соответственно. Они демонстрируют чередующееся выполнение операций
согласно описанному выше протоколу блокировки. Операция для транзакции А в момент
времени t2 (извлечение на рис. 5.7 и обновление на рис. 5.8) не будет выполнена. Дело в
том, что она является неявным запросом с заданием блокировки для кортежа p, а этот
запрос вступает в конфликт с Х-блокировкой, уже заданной транзакцией В.

            Транзакция А                  Время                   Транзакция В
                  -                          |                          -
                  -                          |                          -
                  -                         t1                Обновление кортежа р
                  -                          |            (задание Х-блокировки для р)
                  -                          |                          -
        Извлечение кортежа р                t2                          -
     (задание S-блокировки для               |                          -
               р)                            |                          -
             Ожидание                       t3                Окончание или отмена
             Ожидание                        |                  выполнения
             Ожидание                       t4             (снятие Х-блокировки для р)
     Итог: извлечение кортежа р              |
     (задание S-блокировки для              ↓
               р)
                  -
               Рис. 5.7. Транзакция А предохраняется от выполнения операций
                    с незафиксированным изменением в момент времени t2

     Таким образом, транзакция А переходит в состояние ожидания до тех пор, пока не
будет прекращено выполнение транзакции В (до операции окончания или отмены вы-
                                                                                               51