Двухфазное подтверждение

Двухфазное подтверждение

Транзакция, которая используется в нескольких базах данных Firebird, подтверждается в два этапа, или в две фазы. Такое двухфазное подтверждение гарантирует, что если транзакция не может завершить изменения во всех используемых базах данных, она не будет изменять ни одну из них.

На первой фазе двухфазного подтверждения Firebird подготавливает субтранзакцию для каждой базы данных, вовлеченной в операции транзакции, и записывает соответствующие изменения в каждую базу данных.

На второй фазе, следуя точно в том же порядке, что и при их подготовке и записи, Firebird отмечает каждую подтранзакцию как подтвержденную.

Зависшие транзакции

Зависшие (limbo) транзакции- это подтранзакции, которые остались неразрешенными, если возникли какие-то проблемы в соединениях с одной или более базами данных в процессе выполнения второй фазы двухфазного подтверждения, например, ошибки сети или отключение питания. Сервер не может сказать, должны ли зависшие транзакции подтверждаться или следует выполнить их откат.

Следовательно, некоторые записи в базе данных могут оказаться недоступными, пока явно не будут выполнены те действия по разрешению зависших транзакций, с которыми они связаны.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

10.3.1 Нумерация и подтверждение

Из книги автора

10.3.1 Нумерация и подтверждение Для обеспечения надежной пересылки данных в TCP используются нумерация (numbering) и подтверждение (acknowledgment — ACK). Схема нумерации TCP несколько необычна: каждый пересылаемый по соединению октет рассматривается как имеющий порядковый номер.


Двухфазное подтверждение транзакций

Из книги автора

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


4.3.1. Подтверждение правильности выбора правила

Из книги автора

4.3.1. Подтверждение правильности выбора правила При программировании на Прологе очень часто возникает желание использовать для описания одного предиката несколько утверждений. Одно утверждение будет использоваться, если аргументы имеют один вид, другое будет