On Sat, 24 Dec 2005, Tom Lane wrote:
> Removing these comments entirely, without changing the code they explain,
> doesn't strike me as an improvement.

I just checked if we can remove XLOG_NO_TRAN happily, and the conclusion
is that it could bring some benefits (though not much) to our system. The
key is the CheckpointStartLock lock. If we remove XLOG_NO_TRAN, then even
statement like this will block/wait checkpoint:

        SELECT nextval('serial');

Of course, we can add a test in XLogInsert() to solve this problem like

        no_tran == ((rmid == RM_XLOG_ID) || (rmid == RM_SEQ_ID) || ...)

But the better way is leave XLOG_NO_TRAN for now till we find a way to
avoid CheckpointStartLock lock.


---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to