Jump to content

Протокол трехфазной фиксации

В компьютерных сетях и базах данных используется протокол трехфазной фиксации ( 3PC ). [1] это распределенный алгоритм , который позволяет всем узлам распределенной системы согласиться совершить транзакцию . Это более устойчивая к сбоям модификация протокола двухфазной фиксации (2PC).

Мотивация

[ редактировать ]

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

Протокол трехфазной фиксации устраняет эту проблему, вводя состояние «Подготовлено к фиксации». Если координатор потерпит неудачу до отправки сообщений preCommit, группа единогласно согласится, что операция была прервана. Координатор не будет отправлять сообщение doCommit до тех пор, пока все члены группы не подтвердят , что они готовы к совершению действия . Это исключает возможность того, что какой-либо член когорты фактически завершил транзакцию до того, как все члены когорты узнали о решении сделать это (двусмысленность, которая потребовала неопределенной блокировки в протоколе двухфазной фиксации ).

Фаза предварительной фиксации, представленная выше, помогает системе восстановиться, если участник или координатор и участник потерпели неудачу на этапе фиксации. Когда координатор восстановления берет на себя управление после того, как координатор потерпел неудачу во время фазы фиксации двухфазной фиксации , новая предварительная фиксация становится удобной следующим образом: при опросе участников, если он узнает, что некоторые узлы находятся в фазе фиксации, он предполагает, что предыдущая фиксация координатор перед сбоем принял решение о фиксации. Следовательно, он может управлять протоколом для фиксации. Аналогично, если участник сообщает, что он не получил сообщение ПодготовкаToCommit, то новый координатор может предположить, что предыдущий координатор потерпел неудачу еще до того, как завершил фазу ПодготовкаToCommit. Следовательно, можно с уверенностью предположить, что ни один из участников не зафиксировал изменения, и, следовательно, безопасно прервать транзакцию.

Расширения

[ редактировать ]

Используя оригинальный протокол трехфазной фиксации Скина, возможно, что кворум подключится, не имея возможности добиться прогресса (это не тупиковая ситуация; система все равно будет работать, если разделение сети будет разрешено). E3PC Кейдара и Долева [2] совершенствует протокол трехфазной фиксации Скина и решает эту проблему таким образом, чтобы кворум всегда мог добиться прогресса.

Недостатки

[ редактировать ]

Трехфазная фиксация предполагает сеть с ограниченной задержкой и узлами с ограниченным временем ответа; В большинстве практических систем с неограниченной сетевой задержкой и паузами процессов это не может гарантировать атомарность. Другим недостатком протокола является то, что для его завершения требуется как минимум три передачи туда и обратно, что требует как минимум трех времен туда и обратно (RTT). Потенциально это может привести к длительной задержке завершения каждой транзакции.

  1. ^ Скин, Дейл (февраль 1982 г.). Протокол фиксации на основе кворума (технический отчет). Департамент компьютерных наук Корнелльского университета.
  2. ^ Кейдар, Идит ; Дэнни Долев (декабрь 1998 г.). «Повышение устойчивости распределенных и реплицируемых систем баз данных» . Журнал компьютерных и системных наук . 57 (3): 309–324. дои : 10.1006/jcss.1998.1566 .

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 86b10cd1b4f8c6b59f35feb5cf08cbef__1705379040
URL1:https://arc.ask3.ru/arc/aa/86/ef/86b10cd1b4f8c6b59f35feb5cf08cbef.html
Заголовок, (Title) документа по адресу, URL1:
Three-phase commit protocol - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)