Heikki Linnakangas wrote:
> Tom Lane wrote:
>> ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp> 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.
In response to
pgsql-patches by date
|Next:||From: Zdenek Kotala||Date: 2007-11-14 14:14:45|
|Subject: Re: Fix pg_dump dependency on postgres.h|
|Previous:||From: Heikki Linnakangas||Date: 2007-11-14 11:47:08|
|Subject: Re: Miscalculation in IsCheckpointOnSchedule()|