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 this: 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. Regards, Qingqing ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings