Re: Deduplicate code updating ControleFile's DBState. - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Deduplicate code updating ControleFile's DBState.
Date
Msg-id YVfwwIlBKbgsDsne@paquier.xyz
Whole thread Raw
In response to Re: Deduplicate code updating ControleFile's DBState.  ("Bossart, Nathan" <bossartn@amazon.com>)
Responses Re: Deduplicate code updating ControleFile's DBState.  ("Bossart, Nathan" <bossartn@amazon.com>)
List pgsql-hackers
On Fri, Oct 01, 2021 at 05:47:45PM +0000, Bossart, Nathan wrote:
> I'm inclined to agree that anything that calls update_controlfile()
> should update the timestamp.

pg_control.h tells that:
pg_time_t   time;           /* time stamp of last pg_control update */
So, yes, that would be more consistent.

> However, I wonder if the additional
> calls to time() would have a noticeable impact.

I would not take that lightly either.  Now, I don't think that any of
the code paths where UpdateControlFile() or update_controlfile() is
called are hot enough to worry about that.

 UpdateControlFile(void)
 {
+       ControlFile->time = (pg_time_t) time(NULL);
        update_controlfile(DataDir, ControlFile, true);
 }
I have to admit that it is a bit strange to do that in the backend but
not the frontend, so there is a good argument for doing that directly
in update_controlfile().  pg_resetwal does an update of the time, but
pg_rewind does not.
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: 2021-09 Commitfest
Next
From: Erik Rijkers
Date:
Subject: Re: proposal: possibility to read dumped table's name from file