diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-04-07 13:41:47 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-04-07 13:41:47 -0400 |
commit | d4116a771925379c33cf4c6634ca620ed08b551d (patch) | |
tree | 27f53d0c2833c66a78809bdb2db57c23d20cb0b9 /src/backend | |
parent | dbb2a931478a397a2b655eb77e8be8c1ca136f63 (diff) | |
download | postgresql-d4116a771925379c33cf4c6634ca620ed08b551d.tar.gz postgresql-d4116a771925379c33cf4c6634ca620ed08b551d.zip |
Add ProcArrayGroupUpdate wait event.
Discussion: http://postgr.es/m/CA+TgmobgWHcXDcChX2+BqJDk2dkPVF85ZrJFhUyHHQmw8diTpA@mail.gmail.com
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/postmaster/pgstat.c | 3 | ||||
-rw-r--r-- | src/backend/storage/ipc/procarray.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 56a8bf2d17f..3fb57f060c9 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -3560,6 +3560,9 @@ pgstat_get_wait_ipc(WaitEventIPC w) case WAIT_EVENT_PARALLEL_BITMAP_SCAN: event_name = "ParallelBitmapScan"; break; + case WAIT_EVENT_PROCARRAY_GROUP_UPDATE: + event_name = "ProcArrayGroupUpdate"; + break; case WAIT_EVENT_SAFE_SNAPSHOT: event_name = "SafeSnapshot"; break; diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index fb39bdc2f59..ebf6a929239 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -53,6 +53,7 @@ #include "access/xlog.h" #include "catalog/catalog.h" #include "miscadmin.h" +#include "pgstat.h" #include "storage/proc.h" #include "storage/procarray.h" #include "storage/spin.h" @@ -513,6 +514,7 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid) int extraWaits = 0; /* Sleep until the leader clears our XID. */ + pgstat_report_wait_start(WAIT_EVENT_PROCARRAY_GROUP_UPDATE); for (;;) { /* acts as a read barrier */ @@ -521,6 +523,7 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid) break; extraWaits++; } + pgstat_report_wait_end(); Assert(pg_atomic_read_u32(&proc->procArrayGroupNext) == INVALID_PGPROCNO); |