Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_7.doc
Скачиваний:
4
Добавлен:
11.09.2019
Размер:
521.22 Кб
Скачать

2.4.2. Двухфазная фиксация транзакций (2рс)

Как следует из названия данного протокола, фиксация результатов транзакций выполняется в два этапа: этап голосования и принятия решения . Основная идея состоит в том, что координатор должен опросить всех участников, готовы ли они к фиксации транзакции. Если хотя бы один из участни­ков потребует отката или не ответит на запрос в пределах установленного тайм-аута, координатор укажет всем участникам на необходимость выполнить откат данной транзакции. Глобальное решение должно быть принято всеми участниками. Если не­который участник требует отката транзакции, то он имеет право выполнить его не­медленно. Фактически любой сайт имеет право откатить свою субтранзакцию в лю­бое время, вплоть до того момента, пока он не пошлет согласие на ее фиксацию. По­добный тип отката называют односторонним откатом, Если участник проголосовал за фиксацию транзакции, то он должен ожидать до тех пор, пока координатор не пошлет широковещательное сообщение либо о глобальной фиксации, либо о глобаль* ном откате этой транзакции. Данный протокол предполагает, что каждый сайт имеет свой собственный локальный журнал и с его помощью может надежно откатить или зафиксировать транзакцию. Двухфазный протокол фиксации транзакций включает этап ожидания сообщения от других сайтов. Во избежание нежелательных блокиро­вок процессов система использует механизм обнаружения тайм-аута. Для фиксации глобальной транзакции координатор выполняет следующую процедуру.

20.4.4. Трехфазная фиксация транзакций (зрl)

Выше уже отмечалось, что двухфазный протокол не является неблокирующим, по­скольку при его использовании возможны ситуации, когда некоторый сайт остается в за­блокированном состоянии. Например, процесс, зафиксировавший тайм-аут после отправ­ки своего согласия на фиксацию транзакции, но так и не получивший глобального под* тверждения от координатора, остается в заблокированном состоянии, если может взаимодействовать только с сайтами, которые также не имеют сведений о принятом гло­бальном решении. На практике вероятность блокирования процесса достаточно мала, по­этому в большинстве существующих СУРБД используется именно протокол двухфазной фиксации транзакций. Тем не менее был предложен альтернативный неблокирующий протокол, получивший название протокола трехфазной фиксации транзакций (Зкееп, 1981). Трехфазная фиксация является неблокирующей в отношении отказов сайтов, за исключением случая одновременного отказа всех сайтов. Однако отказы линий связи мо­гут привести к тому, что на различных сайтах будут приняты разные решения, что будет иметь следствием нарушение свойства атомарности глобальной транзакции. Для исполь­зования этого протокола необходимо выполнение следующих условий.

Расчленение сети не должно иметь места.

По крайней мере один сайт всегда должен быть доступен.

Самое большее К сайтов сети могут отказать одновременно.

Основная идея протокола трехфазной фиксации состоит в устранении неопределен­ного периода ожидания, в который попадают участники после подтверждения своего согласия на фиксацию транзакции и до получения от координатора извещения о гло­бальной фиксации или глобальном откате. В трехфазном протоколе фиксации вводится третья фаза, называемая предфиксацней, помещаемая между фазами голосования и принятия глобального решения. После получении результатов голосования от всех уча­стников координатор рассылает глобальное сообщение РКЕ-СОМШ. Участник, который получил глобальное извещение о предфиксации, знает, что все остальные участники проголосовали за фиксацию результатов транзакции и что со временем сам этот участ­ник определенно выполнит фиксацию транзакции, если не произойдет отказ. Каждый участник подтверждает получение сообщения о предфиксации. После того как коорди­натор получит все эти подтверждения, он рассылает команду глобальной фиксации транзакции. Если некоторый участник потребовал отката транзакции, то обработка этой ситуации выполняется точно так же, как в протоколе двухфазной фиксации.

Модифицированные варианты диаграмм состояния для координатора и участника показаны на рис. 20.10, Как координатор, так и участник по-прежнему попадают в состояние ожидания, однако главная особенность состоит в том, что все функциони­рующие процессы были информированы о глобальном решении зафиксировать тран­закцию посредством отправки сообщения РНЕ-СОКМТТ отце до того, как первый про­цесс выполнит фиксацию результатов транзакции, что позволяет участкам дейст­вовать независимо друг от друга в случае отказа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]