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

UptoLike

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

37
привести к глобальному тупику, который охватывает два или более узлов. На рис. 3.2
представлен пример возникновения такого тупика:
1. Агент транзакции T
2
на узле X ожидает, когда агент транзакции T
1
снимет блоки-
ровку на узле X
2. Агент транзакции T
1
на узле X ожидает, когда закончится выполнение транзакции
T
1
на узле Y
3. Агент транзакции T
1
на узле Y ожидает, когда агент транзакции T
2
снимет блоки-
ровку на узле Y.
4. Агент транзакции T
2
на узле Y ожидает, когда закончится выполнение транзакции
T
2
на узле X. Тупиковая ситуация!
Рис. 3.2. Пример глобального тупика.
Проблема тупика такого типа состоит в том, что ни один из узлов не может обна-
ружить тупик, используя только информацию, которая сосредоточена на этом узле.
Иначе говоря, в локальных диаграммах ожидания нет никаких циклов, но они появятся
при объединении локальных диаграмм в глобальную диаграмму ожидания. Отсюда
следует, что обнаружение глобальных тупиков связано с увеличением накладных
расходов, поскольку для этого требуется дополнительно совместить отдельные локальные
диаграммы.
Весьма элегантная (распределенная) схема обнаружения глобального тупика при-
водится в публикациях, посвященных системе R*.
Ожидание окончания
выполнения транзакции
Т
1
на узле Y
Ожидание окончания
выполнения транзакции
Т
2
на узле Х
Блоки
р
овка Lx
Ожидание снятия
блокировки на узле Х
Узел Х
T
1
Ожидание снятия
блокировки на узле Y
Блоки
р
овка L
y
Узел У
T
2
T
2
T
1
   привести к глобальному тупику, который охватывает два или более узлов. На рис. 3.2
   представлен пример возникновения такого тупика:
        1. Агент транзакции T2 на узле X ожидает, когда агент транзакции T1 снимет блоки-
           ровку на узле X
        2. Агент транзакции T1 на узле X ожидает, когда закончится выполнение транзакции
           T1 на узле Y
        3. Агент транзакции T1 на узле Y ожидает, когда агент транзакции T2 снимет блоки-
           ровку на узле Y.
        4. Агент транзакции T2 на узле Y ожидает, когда закончится выполнение транзакции
           T2 на узле X. Тупиковая ситуация!
                                         Узел Х

                             Блокировка Lx
                        T1                                     T2
                                  Ожидание снятия
                                  блокировки на узле Х


  Ожидание окончания
                                                                      Ожидание окончания
выполнения транзакции
                                                                    выполнения транзакции
     Т1 на узле Y                        Узел У                          Т2 на узле Х


                        T1                                     T2
                                 Ожидание снятия
                                 блокировки на узле Y
                                                          Блокировка Ly

                                 Рис. 3.2. Пример глобального тупика.
        Проблема тупика такого типа состоит в том, что ни один из узлов не может обна-
   ружить тупик, используя только информацию, которая сосредоточена на этом узле.
   Иначе говоря, в локальных диаграммах ожидания нет никаких циклов, но они появятся
   при объединении локальных диаграмм в глобальную диаграмму ожидания. Отсюда
   следует, что обнаружение глобальных тупиков связано с увеличением накладных
   расходов, поскольку для этого требуется дополнительно совместить отдельные локальные
   диаграммы.
        Весьма элегантная (распределенная) схема обнаружения глобального тупика при-
   водится в публикациях, посвященных системе R*.




                                                                                            37