Виды декомпозиций. Декомпозиция без потерь


Восстановление распределенных баз данных - часть 2


сайтов, протоколы, обеспечивающие выполнение этого требования называются неблокирующими.

Существует 2 широко используемых протокола фиксации транзакций в СУРБД:

1.            протокол двухфазной фиксации транзакций (2PC)

2.            неблокирующий протокол трехфазной фиксации транзакций (3РС).

Протокол двухфазной фиксации транзакций выполняется в 2 этапа: этап голосования и принятия решений. Идея состоит в том, что координатор должен опросить всех участников, готовы ли они к фиксации транзакций. Если хотя бы 1 из участников не ответит на запрос в пределах заданного тайм-аута/потребует отката, то координатор (сайт, следящий за выполнением глобальной транзакции) укажет всем участникам на необходимость отката данной транзакции. Данный протокол предполагает, что каждый сайт имеет свой собственный локальный журнал и с его помощью может надежно откатить/зафиксировать транзакцию. Двухфазный протокол включает в себя этап ожидания сообщения от др. сайтов. Во избежание блокировок процессов система использует механизм тайм-аута. Двухфазный протокол не является неблокирующим, т.к. при его использовании возможны ситуации, когда некоторый сайт остается в заблокированном состоянии (процесс, зафиксировавший тайм-аут после отправки согласия на фиксацию транзакции, но так и не получивший глобального подтверждения от координатора, остается в заблокированном состоянии). На практике вероятность блокирования процесса достаточно мала, поэтому в большинстве СУРБД используется именно этот протокол.

Трехфазная фиксация транзакций. Для использования этого протокола необходимо выполнение следующих условий: расчленение сети не должно иметь места, по крайней мере 1 сайт всегда должен быть доступен, самое большое К сайтов может отказать одновременно. Трехфазная фиксация является неблокирующей в отношении отказов сайтов, за исключением ситуации одновременного отказа всех сайтов. Основная идея данного протокола состоит в устранении неопределенного периода ожидания, в который попадают участники после согласия на фиксацию транзакции и до получения от координатора извещения о глобальной фиксации/глобальном откате.Для этого вводится третья фаза – предфиксация (PRE-COMMIT), помещаемая между фазами голосования и принятия глобального решения. Участник, получивший глобальное извещение о предфиксации знает, что все участники проголосовали за фиксацию результатов транзакции и что со временем сам участник тоже выполнит фиксацию, если не наступит отказ. Каждый участник подтверждает получение сообщения о предфиксации. После того как координатор получит эти подтверждения, он рассылает команду глобальной фиксации транзакций.




Начало  Назад  



Книжный магазин