71.4. Двухфазные транзакции#
71.4. Двухфазные транзакции #
Tantor BE поддерживает протокол двухфазной фиксации (2PC), который позволяет нескольким распределенным системам работать вместе транзакционным образом. Команды: PREPARE TRANSACTION
, COMMIT PREPARED
и ROLLBACK PREPARED
. Двухфазные транзакции предназначены для использования внешними системами управления транзакциями. Tantor BE следует функциям и модели, предложенным стандартом X/Open XA, но не реализует некоторые менее часто используемые аспекты.
Когда пользователь выполняет PREPARE TRANSACTION
, единственными возможными следующими командами являются COMMIT PREPARED
или ROLLBACK PREPARED
. В общем, это подготовленное состояние предназначено для очень короткой продолжительности, но внешние проблемы доступности могут означать, что транзакции остаются в этом состоянии в течение длительного интервала. Кратковременные подготовленные транзакции хранятся только в общей памяти и WAL. Транзакции, охватывающие контрольные точки, записываются в каталог pg_twophase
. Текущие подготовленные транзакции можно просмотреть с помощью pg_prepared_xacts
.