diff options
author | Michael Paquier <michael@paquier.xyz> | 2025-07-07 12:50:40 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2025-07-07 12:50:40 +0900 |
commit | 62a17a92833d1eaa60d8ea372663290942a1e8eb (patch) | |
tree | bca21f2407bd919c7a770400b10c8f72ac83e0a7 /src/test/modules/commit_ts | |
parent | 8aa54aa7eefbf738999ae855d9192bc57756201e (diff) | |
download | postgresql-62a17a92833d1eaa60d8ea372663290942a1e8eb.tar.gz postgresql-62a17a92833d1eaa60d8ea372663290942a1e8eb.zip |
Integrate FullTransactionIds deeper into two-phase code
This refactoring is a follow-up of the work done in 5a1dfde8334b, that
has switched 2PC file names to use FullTransactionIds when written on
disk. This will help with the integration of a follow-up solution
related to the handling of two-phase files during recovery, to address
older defects while reading these from disk after a crash.
This change is useful in itself as it reduces the need to build the
file names from epoch numbers and TransactionIds, because we can use
directly FullTransactionIds from which the 2PC file names are guessed.
So this avoids a lot of back-and-forth between the FullTransactionIds
retrieved from the file names and how these are passed around in the
internal 2PC logic.
Note that the core of the change is the use of a FullTransactionId
instead of a TransactionId in GlobalTransactionData, that tracks 2PC
file information in shared memory. The change in TwoPhaseCallback makes
this commit unfit for stable branches.
Noah has contributed a good chunk of this patch. I have spent some time
on it as well while working on the issues with two-phase state files and
recovery.
Author: Noah Misch <noah@leadboat.com>
Co-Authored-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/Z5sd5O9JO7NYNK-C@paquier.xyz
Discussion: https://postgr.es/m/20250116205254.65.nmisch@google.com
Diffstat (limited to 'src/test/modules/commit_ts')
0 files changed, 0 insertions, 0 deletions