On Fri, Dec 30, 2016 at 10:59 PM, Ashutosh Bapat <ashutosh.ba...@enterprisedb.com> wrote: >> >> Well, flushing the meta-data of pg_twophase is really going to be far >> cheaper than the many pages done until CheckpointTwoPhase is reached. >> There should really be a check on serialized_xacts for the >> non-recovery code path, but considering how cheap that's going to be >> compared to the rest of the restart point stuff it is not worth the >> complexity of adding a counter, for example in shared memory with >> XLogCtl (the counter gets reinitialized at each checkpoint, >> incremented when replaying a 2PC prepare, decremented with a 2PC >> commit). So to reduce the backpatch impact I would just do the fsync >> if (serialized_xact > 0 || RecoveryInProgress()) and call it a day. > > Sounds ok to me. I will leave it to the committer to decide further.
Attached is an updated patch. I also noticed that it is better to do the fsync call before the dtrace call for checkpoint end as well as logging. -- Michael
2pc-loss-v2.patch
Description: application/stream
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers