Commit c9bcd7f
committed
[PGPRO-4074] 3pc support.
Cherry pick of cef39e64b85aed8cd (persistent state change for prepared xact) plus
1) Allow setting state_3pc in PREPARE;
2) Variable len state_3pc -- it can be quite large once we stuff the whole
generational stuff inside;
3) Fix holes in state_3pc interactions with checkpointer:
- 'P, ckpt, 3pc, ckpt, crash' previously lost 3pc as gxact is marked ondisk
during second ckpt;
- prepare_start|end_lsn wasn't updated during state_3pc redo, this also led
to state_3pc loss once the xact is moved to file;
- gxact's start|end lsns shouldn't be updated until
SetPreparedTransactionState fsyncs its WAL;
4) Relevant TAP test moved into core patch and supplemented with 3) cases.
5) Bump TWOPHASE_MAGIC.
tags: multimaster
(cherry picked from commit d45aa55aebb60540416559ad9c929a118056bcce)1 parent 63c917c commit c9bcd7f
File tree
13 files changed
+498
-29
lines changed- src
- backend
- access
- rmgrdesc
- transam
- replication/logical
- include
- access
- catalog
- replication
- test
- recovery/t
- regress/expected
13 files changed
+498
-29
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
| 233 | + | |
233 | 234 | | |
234 | 235 | | |
235 | 236 | | |
236 | 237 | | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
237 | 246 | | |
238 | 247 | | |
239 | 248 | | |
| |||
0 commit comments