From: | Stephen Frost <sfrost(at)snowman(dot)net> |
---|---|
To: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
Cc: | David Steele <david(at)pgmasters(dot)net>, Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Fix checkpoint skip logic on idle systems by tracking LSN progress |
Date: | 2016-11-10 15:28:12 |
Message-ID: | 20161110152812.GI13284@tamriel.snowman.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Michael,
* Michael Paquier (michael(dot)paquier(at)gmail(dot)com) wrote:
> Thanks for the review! Waiting for a couple of days more is fine for
> me. This won't change much. Attached is v15 with the fixes you
> mentioned.
I figured I'd go ahead and start looking into this (and it's pretty easy
for me to discuss it with David, given he works in the same office ;).
A couple initial comments:
> diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
> index adab2f8..38c2385 100644
> --- a/doc/src/sgml/config.sgml
> +++ b/doc/src/sgml/config.sgml
> @@ -2826,12 +2826,9 @@ include_dir 'conf.d'
> parameter is greater than zero, the server will switch to a new
> segment file whenever this many seconds have elapsed since the last
> segment file switch, and there has been any database activity,
> - including a single checkpoint. (Increasing
> - <varname>checkpoint_timeout</> will reduce unnecessary
> - checkpoints on an idle system.)
> - Note that archived files that are closed early
> - due to a forced switch are still the same length as completely full
> - files. Therefore, it is unwise to use a very short
> + including a single checkpoint. Note that archived files that are
> + closed early due to a forced switch are still the same length as
> + completely full files. Therefore, it is unwise to use a very short
> <varname>archive_timeout</> — it will bloat your archive
> storage. <varname>archive_timeout</> settings of a minute or so are
> usually reasonable. You should consider using streaming replication,
We should probably include in here that we may skip a checkpoint if no
activity has happened, meaning that this is a safe setting to set for
environments which are idle for long periods (I'm thinking embedded
systems here).
> diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
[...]
> + if (log_checkpoints)
> + ereport(LOG, (errmsg("checkpoint skipped")));
Do we really need to log that we're skipping a checkpoint..? As the
point of this is to avoid write activity on a system which is idle, it
doesn't make sense to me to add a new cause for writes to happen when
we're idle.
Thanks!
Stephen
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2016-11-10 16:36:35 | Re: WAL consistency check facility |
Previous Message | Kuntal Ghosh | 2016-11-10 15:02:58 | Re: WAL consistency check facility |