Re: Wait event that should be reported while waiting for WAL archiving to finish
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: pgsql-hackers@postgresql.org
Date: 2020-02-13T07:30:35Z
Lists: pgsql-hackers
On Thu, Feb 13, 2020 at 03:35:50PM +0900, Fujii Masao wrote:
> I found that the wait events "LogicalRewriteTruncate" and
> "GSSOpenServer" are not documented. I'm thinking to add
> them into doc separately if ok.
Nice catch. The ordering of the entries is not respected either for
GSSOpenServer in pgstat.h. The portion for the code and the docs can
be fixed in back-branches, but not the enum list in WaitEventClient or
we would have an ABI breakage. But this can be fixed on HEAD. Can
you take care of it? If you need help, please feel free to poke me. I
think that this should be fixed first, before adding the new event.
> <entry><literal>SyncRep</literal></entry>
> <entry>Waiting for confirmation from remote server during synchronous replication.</entry>
> </row>
> + <row>
> + <entry><literal>BackupWaitWalArchive</literal></entry>
> + <entry>Waiting for WAL files required for the backup to be successfully archived.</entry>
> + </row>
The category IPC is adapted. You forgot to update the markup morerows
from "36" to "37", causing the table of the wait events to have a
weird format (the bottom should be incorrect).
> + pgstat_report_wait_start(WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE);
> while (XLogArchiveIsBusy(lastxlogfilename) ||
> XLogArchiveIsBusy(histfilename))
> {
> @@ -11120,6 +11121,7 @@ do_pg_stop_backup(char *labelfile, bool waitforarchive, TimeLineID *stoptli_p)
> "but the database backup will not be usable without all the WAL segments.")));
> }
> }
> + pgstat_report_wait_end();
Okay, that position is right.
> @@ -3848,6 +3848,9 @@ pgstat_get_wait_ipc(WaitEventIPC w)
> case WAIT_EVENT_SYNC_REP:
> event_name = "SyncRep";
> break;
> + case WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE:
> + event_name = "BackupWaitWalArchive";
> + break;
> /* no default case, so that compiler will warn */
> [...]
> @@ -853,7 +853,8 @@ typedef enum
> WAIT_EVENT_REPLICATION_ORIGIN_DROP,
> WAIT_EVENT_REPLICATION_SLOT_DROP,
> WAIT_EVENT_SAFE_SNAPSHOT,
> - WAIT_EVENT_SYNC_REP
> + WAIT_EVENT_SYNC_REP,
> + WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE
> } WaitEventIPC;
It would be good to keep entries in alphabetical order in the header,
the code and in the docs (see the effort from 5ef037c), and your patch
is missing that concept for all three places where it matters for this
new event.
--
Michael
Commits
-
Add wait events for WAL archive and recovery pause.
- b8e20d6dabda 13.0 landed
-
Add description about GSSOpenServer wait event into document.
- 0b5474181569 12.3 landed
- f4ae7221413d 13.0 landed
-
Add description about LogicalRewriteTruncate wait event into document.
- 1beab076cefe 10.13 landed
- 12bea22a78c1 11.8 landed
- 6c221aa56e18 12.3 landed
- e593148d43ad 13.0 landed
-
GSSAPI encryption support
- b0b39f72b990 12.0 cited
-
Create and use wait events for read, write, and fsync operations.
- 249cf070e367 10.0 cited