Heikki Linnakangas wrote:
Tom Lane wrote:
ITAGAKI Takahiro <[EMAIL PROTECTED]> writes:
- ((double) (int32) (recptr.xrecoff - ckpt_start_recptr.xrecoff)) / XLogSegSize) / + ((double) recptr.xrecoff - (double) ckpt_start_recptr.xrecoff) / XLogSegSize) /

Surely this makes matters worse, not better.  What happens near a segment
boundary crossing?

Hmm. There seems to be another little bug in there. XLogSegsPerFile is defined as 0xffffffff/XLogSegSize, which is 255 with default settings. It should be 256. That leads to negative elapsed_xlogs estimates at xlog file boundaries. XLogCheckpointNeeded suffers from it too; the number of segments consumed since last checkpoint is off by one per each xlogid, so we trigger the checkpoint a little bit too late.

I'll take that back. We intentionally don't use the last possible segment of each xlog file, to avoid overflows. Sorry for the noise.

  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

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

Reply via email to