Re: Fix checkpoint skip logic on idle systems by tracking LSN progress

From: David Steele <david(at)pgmasters(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Fix checkpoint skip logic on idle systems by tracking LSN progress
Date: 2016-09-27 21:12:38
Message-ID: 13860344-1fd9-26cf-087c-32f464a46381@pgmasters.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 9/27/16 6:16 AM, Kyotaro HORIGUCHI wrote:

> I apologize in advance that the comments in this message might
> one of the ideas discarded in the past thread.. I might not grasp
> the discussion completely X(
>
> The attached patches are rebased to the master and additional one
> mentioned below.

I tried the attached patch set and noticed an interesting behavior.
With archive_timeout=5 whenever I made a change I would get a WAL
segment within a few seconds as expected then another one would follow a
few minutes later.

Database init:
16M Sep 27 20:05 000000010000000000000001
16M Sep 27 20:09 000000010000000000000002

Create test table:
16M Sep 27 20:13 000000010000000000000003
16M Sep 27 20:15 000000010000000000000004

Insert row into test table:
16M Sep 27 20:46 000000010000000000000005
16M Sep 27 20:49 000000010000000000000006

The cluster was completely idle with no sessions connected in between
those three commands. Is it possible this is caused by:

+ * switch segment only when any substantial progress have made from
+ * the last segment switching by timeout. Segment switching by other
+ * reasons will cause last_xlog_switch_lsn stay behind but it doesn't
+ * matter since it just causes possible one excessive segment switch.
*/

I would like to give Michael a chance to respond to the updated patches
before delving deeper.

--
-David
david(at)pgmasters(dot)net

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2016-09-27 21:15:19 Re: Speed up Clog Access by increasing CLOG buffers
Previous Message Tom Lane 2016-09-27 21:12:32 Re: Detect supported SET parameters when pg_restore is run