]> granicus.if.org Git - postgresql/commit
Speedup 2PC recovery by skipping two phase state files in normal path
authorSimon Riggs <simon@2ndQuadrant.com>
Tue, 4 Apr 2017 19:56:56 +0000 (15:56 -0400)
committerSimon Riggs <simon@2ndQuadrant.com>
Tue, 4 Apr 2017 19:56:56 +0000 (15:56 -0400)
commit728bd991c3c4389fb39c45dcb0fe57e4a1dccd71
tree75e41ea8472f46bf36c18e57778bbb8da57027fe
parent60a0b2ec8943451186dfa22907f88334d97cb2e0
Speedup 2PC recovery by skipping two phase state files in normal path

2PC state info held in shmem at PREPARE, then cleaned at COMMIT PREPARED/ABORT PREPARED,
avoiding writing/fsyncing any state information to disk in the normal path, greatly enhancing replay speed.
Prepared transactions that live past one checkpoint redo horizon will be written to disk as now.
Similar conceptually to 978b2f65aa1262eb4ecbf8b3785cb1b9cf4db78e and building upon
the infrastructure created by that commit.

Authors, in equal measure: Stas Kelvich, Nikhil Sontakke and Michael Paquier
Discussion: https://postgr.es/m/CAMGcDxf8Bn9ZPBBJZba9wiyQq-Qk5uqq=VjoMnRnW5s+fKST3w@mail.gmail.com
src/backend/access/transam/twophase.c
src/backend/access/transam/xact.c
src/backend/access/transam/xlog.c
src/include/access/twophase.h