From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: WAL format changes break the suppression of do-nothing checkpoints. |
Date: | 2015-03-31 13:19:58 |
Message-ID: | 551A9EFE.5080702@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 03/30/2015 09:01 PM, Jeff Janes wrote:
> commit 2c03216d831160bedd72d45f7 has invalidated the part of the docs
> saying "If no WAL has been written since the previous checkpoint, new
> checkpoints will be skipped even if checkpoint_timeout has passed",
> presumably by accident.
>
> It seems that this part is no longer true when it should be true:
>
> if (curInsert == ControlFile->checkPoint +
> MAXALIGN(SizeOfXLogRecord + sizeof(CheckPoint))
>
> MAXALIGN(SizeOfXLogRecord + sizeof(CheckPoint) is now 96, but the amount by
> which curInsert gets advanced is still 104, like it was before the commit.
Hmm. Wasn't this a bit broken before too, when the checkpoint record
crosses a page boundary?
Instead of trying to calculate where the checkpoint record ends, I think
we could check that the prev-pointer points to the last checkpoint record.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2015-03-31 13:26:39 | Re: INSERT ... ON CONFLICT IGNORE (and UPDATE) 3.0 |
Previous Message | Stephen Frost | 2015-03-31 13:12:52 | Re: Permission select pg_stat_replication |