Hi, In the undo system, we use full-transaction-id for transactions. For rollback of prepared transactions, we were planning to use FullTransactionId by combining TransactionId and epoch, but as suggested by multiple people in that email chain [1][2], the better idea is to store Full-transactionid in TwoPhaseFileHeader
Backward compatibility need not be handled for this scnario as upgrade does not support having open prepared transactions. There is also one more comment which is yet to be concluded. The comment discusses about changing subxids which are of TransactionId type to FullTransactionId type being written in two phase transaction file. We could not conclude this as the data is similarly stored in TransactionStateData. Please find the patch having the fix for Storing FullTransactionId in TwoPhaseFileHeader/GlobalTransactionData. Let me know your opinion on the patch and above comment. [1] https://www.postgresql.org/message-id/CA%2BhUKGJ%2BPg2gE9Hdt6fXHn6ezV7xJnS%2Brm-38ksXZGXYcZh3Gg%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAA4eK1L9BhvnQfa_RJCTpKQf9QZ15pyUW7s32BH78iBC3KbV0g%40mail.gmail.com Regards, Vignesh EnterpriseDB: http://www.enterprisedb.com
Store_FullTransactionId_TwoPhaseFileHeader_GlobalTransactionData.patch
Description: Binary data