71.4. Двухфазные транзакции#

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.