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