Simon Riggs <[EMAIL PROTECTED]> writes: > DEBUG1 messages showed that there is an apparent limit of 255 xlog files > per checkpoint -
The volume-based checkpoint trigger code is if (IsUnderPostmaster && (openLogId != RedoRecPtr.xlogid || openLogSeg >= (RedoRecPtr.xrecoff / XLogSegSize) + (uint32) CheckPointSegments)) { #ifdef WAL_DEBUG if (XLOG_DEBUG) elog(LOG, "time for a checkpoint, signaling bgwriter"); #endif RequestCheckpoint(false); } which now that I look at it obviously forces a checkpoint whenever xlogid (the upper half of XLogRecPtr) changes, ie every 4GB of WAL output. I suppose on a high-performance platform it's possible that one would want checkpoints further apart than that, though the idea of plowing through multiple gigabytes of WAL in order to recover from a crash is a bit daunting. It's not immediately obvious how to recast the comparison without either creating overflow bugs or depending on 64-bit-int arithmetic being available. Thoughts? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org