Mop-up for wait event naming issues.
authorTom Lane
Sun, 17 May 2020 01:00:05 +0000 (21:00 -0400)
committerTom Lane
Sun, 17 May 2020 01:00:11 +0000 (21:00 -0400)
Synchronize the event names for parallel hash join waits with other
event names, by getting rid of the slashes and dropping "-ing"
suffixes.  Rename ClogGroupUpdate to XactGroupUpdate, to match the
new SLRU name.  Move the ProcSignalBarrier event to the IPC category;
it doesn't belong under IO.

Also a bit more wordsmithing in the wait event documentation tables.

Discussion: https://postgr.es/m/4505.1589640417@sss.pgh.pa.us

doc/src/sgml/monitoring.sgml
src/backend/access/transam/clog.c
src/backend/executor/nodeHash.c
src/backend/executor/nodeHashjoin.c
src/backend/postmaster/pgstat.c
src/include/pgstat.h

index cd526128983e2dd6aa53ee8d7995909125bbc929..acc6e2bc3160254e027e23921af944e29b4a690f 100644 (file)
@@ -1178,24 +1178,28 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       ControlFileRead
-      Waiting for a read from the control file.
+      Waiting for a read from the pg_control
+       file.
      
      
       ControlFileSync
-      Waiting for the control file to reach stable storage.
+      Waiting for the pg_control file to reach
+       stable storage.
      
      
       ControlFileSyncUpdate
-      Waiting for an update to the control file to reach stable
-       storage.
+      Waiting for an update to the pg_control file
+       to reach stable storage.
      
      
       ControlFileWrite
-      Waiting for a write to the control file.
+      Waiting for a write to the pg_control
+       file.
      
      
       ControlFileWriteUpdate
-      Waiting for a write to update the control file.
+      Waiting for a write to update the pg_control
+       file.
      
      
       CopyFileRead
@@ -1207,8 +1211,8 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       DSMFillZeroWrite
-      Waiting to write zero bytes to a dynamic shared memory backing
-       file.
+      Waiting to fill a dynamic shared memory backing file with
+       zeroes.
      
      
       DataFileExtend
@@ -1308,11 +1312,6 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
       LogicalRewriteWrite
       Waiting for a write of logical rewrite mappings.
      
-     
-      ProcSignalBarrier
-      Waiting for a barrier event to be processed by all
-       backends.
-     
      
       RelationMapRead
       Waiting for a read of the relation map file.
@@ -1464,7 +1463,7 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       WALSenderTimelineHistoryRead
-      Waiting for a read from a timeline history file during walsender
+      Waiting for a read from a timeline history file during walsender
        timeline command.
      
      
@@ -1473,8 +1472,8 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       WALSyncMethodAssign
-      Waiting for data to reach stable storage while assigning WAL sync
-       method.
+      Waiting for data to reach stable storage while assigning a new
+       WAL sync method.
      
      
       WALWrite
@@ -1497,7 +1496,7 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
     
      
       BackupWaitWalArchive
-      Waiting for WAL files required for the backup to be successfully
+      Waiting for WAL files required for a backup to be successfully
        archived.
      
      
@@ -1521,98 +1520,100 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
       CheckpointStart
       Waiting for a checkpoint to start.
      
-     
-      ClogGroupUpdate
-      Waiting for group leader to update transaction status at
-       transaction end.
-     
      
       ExecuteGather
-      Waiting for activity from child process while
-       executing Gather node.
+      Waiting for activity from child process while
+       executing Gather plan node.
      
      
-      Hash/Batch/Allocating
+      HashBatchAllocate
       Waiting for an elected Parallel Hash participant to allocate a hash
        table.
      
      
-      Hash/Batch/Electing
-      Electing a Parallel Hash participant to allocate a hash table.
+      HashBatchElect
+      Waiting to elect a Parallel Hash participant to allocate a hash
+       table.
      
      
-      Hash/Batch/Loading
+      HashBatchLoad
       Waiting for other Parallel Hash participants to finish loading a
        hash table.
      
      
-      Hash/Build/Allocating
+      HashBuildAllocate
       Waiting for an elected Parallel Hash participant to allocate the
        initial hash table.
      
      
-      Hash/Build/Electing
-      Electing a Parallel Hash participant to allocate the initial hash table.
+      HashBuildElect
+      Waiting to elect a Parallel Hash participant to allocate the
+       initial hash table.
      
      
-      Hash/Build/HashingInner
+      HashBuildHashInner
       Waiting for other Parallel Hash participants to finish hashing the
        inner relation.
      
      
-      Hash/Build/HashingOuter
+      HashBuildHashOuter
       Waiting for other Parallel Hash participants to finish partitioning
        the outer relation.
      
      
-      Hash/GrowBatches/Allocating
+      HashGrowBatchesAllocate
       Waiting for an elected Parallel Hash participant to allocate more
        batches.
      
      
-      Hash/GrowBatches/Deciding
-      Electing a Parallel Hash participant to decide on future batch growth.
+      HashGrowBatchesDecide
+      Waiting to elect a Parallel Hash participant to decide on future
+       batch growth.
      
      
-      Hash/GrowBatches/Electing
-      Electing a Parallel Hash participant to allocate more batches.
+      HashGrowBatchesElect
+      Waiting to elect a Parallel Hash participant to allocate more
+       batches.
      
      
-      Hash/GrowBatches/Finishing
+      HashGrowBatchesFinish
       Waiting for an elected Parallel Hash participant to decide on
        future batch growth.
      
      
-      Hash/GrowBatches/Repartitioning
-      Waiting for other Parallel Hash participants to finishing
+      HashGrowBatchesRepartition
+      Waiting for other Parallel Hash participants to finish
        repartitioning.
      
      
-      Hash/GrowBuckets/Allocating
+      HashGrowBucketsAllocate
       Waiting for an elected Parallel Hash participant to finish
        allocating more buckets.
      
      
-      Hash/GrowBuckets/Electing
-      Electing a Parallel Hash participant to allocate more buckets.
+      HashGrowBucketsElect
+      Waiting to elect a Parallel Hash participant to allocate more
+       buckets.
      
      
-      Hash/GrowBuckets/Reinserting
+      HashGrowBucketsReinsert
       Waiting for other Parallel Hash participants to finish inserting
        tuples into new buckets.
      
      
       LogicalSyncData
-      Waiting for logical replication remote server to send data for
+      Waiting for logical replication remote server to send data for
        initial table synchronization.
      
      
       LogicalSyncStateChange
-      Waiting for logical replication remote server to change state.
+      Waiting for a logical replication remote server to change
+       state.
      
      
       MessageQueueInternal
-      Waiting for other process to be attached in shared message queue.
+      Waiting for another process to be attached to a shared message
+       queue.
      
      
       MessageQueuePutMessage
@@ -1641,7 +1642,13 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       ProcArrayGroupUpdate
-      Waiting for group leader to clear transaction id at transaction end.
+      Waiting for the group leader to clear the transaction ID at
+       end of a parallel operation.
+     
+     
+      ProcSignalBarrier
+      Waiting for a barrier event to be processed by all
+       backends.
      
      
       Promote
@@ -1649,11 +1656,13 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       RecoveryConflictSnapshot
-      Waiting for recovery conflict resolution on a vacuum cleanup.
+      Waiting for recovery conflict resolution for a vacuum
+       cleanup.
      
      
       RecoveryConflictTablespace
-      Waiting for recovery conflict resolution on dropping tablespace.
+      Waiting for recovery conflict resolution for dropping a
+       tablespace.
      
      
       RecoveryPause
@@ -1661,22 +1670,29 @@ postgres   27093  0.0  0.0  30096  2752 ?        Ss   11:34   0:00 postgres: ser
      
      
       ReplicationOriginDrop
-      Waiting for a replication origin to become inactive to be dropped.
+      Waiting for a replication origin to become inactive so it can be
+       dropped.
      
      
       ReplicationSlotDrop
-      Waiting for a replication slot to become inactive to be dropped.
+      Waiting for a replication slot to become inactive so it can be
+       dropped.
      
      
       SafeSnapshot
-      Waiting for a snapshot for a READ ONLY DEFERRABLE
-       transaction.
+      Waiting to obtain a valid snapshot for a READ ONLY
+       DEFERRABLE transaction.
      
      
       SyncRep
-      Waiting for confirmation from remote server during synchronous
+      Waiting for confirmation from remote server during synchronous
        replication.
      
+     
+      XactGroupUpdate
+      Waiting for the group leader to update transaction status at
+       end of a parallel operation.
+     
     
    
   
index 23bc1f8d4c18dd65cebb14299bd4ad006f312c4e..f3da40ae017faf8ef1d220701b7715164d6182eb 100644 (file)
@@ -473,7 +473,7 @@ TransactionGroupUpdateXidStatus(TransactionId xid, XidStatus status,
        int         extraWaits = 0;
 
        /* Sleep until the leader updates our XID status. */
-       pgstat_report_wait_start(WAIT_EVENT_CLOG_GROUP_UPDATE);
+       pgstat_report_wait_start(WAIT_EVENT_XACT_GROUP_UPDATE);
        for (;;)
        {
            /* acts as a read barrier */
index 5da13ada726ad8779348a03c47a9ae568430a062..45b342011fe5ee1db764581350ad0addd026c7c3 100644 (file)
@@ -255,7 +255,7 @@ MultiExecParallelHash(HashState *node)
             * ExecHashTableCreate(), or someone else is doing that.  Either
             * way, wait for everyone to arrive here so we can proceed.
             */
-           BarrierArriveAndWait(build_barrier, WAIT_EVENT_HASH_BUILD_ALLOCATING);
+           BarrierArriveAndWait(build_barrier, WAIT_EVENT_HASH_BUILD_ALLOCATE);
            /* Fall through. */
 
        case PHJ_BUILD_HASHING_INNER:
@@ -311,7 +311,7 @@ MultiExecParallelHash(HashState *node)
             * counters.
             */
            if (BarrierArriveAndWait(build_barrier,
-                                    WAIT_EVENT_HASH_BUILD_HASHING_INNER))
+                                    WAIT_EVENT_HASH_BUILD_HASH_INNER))
            {
                /*
                 * Elect one backend to disable any further growth.  Batches
@@ -603,7 +603,7 @@ ExecHashTableCreate(HashState *state, List *hashOperators, List *hashCollations,
         * backend will be elected to do that now if necessary.
         */
        if (BarrierPhase(build_barrier) == PHJ_BUILD_ELECTING &&
-           BarrierArriveAndWait(build_barrier, WAIT_EVENT_HASH_BUILD_ELECTING))
+           BarrierArriveAndWait(build_barrier, WAIT_EVENT_HASH_BUILD_ELECT))
        {
            pstate->nbatch = nbatch;
            pstate->space_allowed = space_allowed;
@@ -1076,7 +1076,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable)
             * tuples.
             */
            if (BarrierArriveAndWait(&pstate->grow_batches_barrier,
-                                    WAIT_EVENT_HASH_GROW_BATCHES_ELECTING))
+                                    WAIT_EVENT_HASH_GROW_BATCHES_ELECT))
            {
                dsa_pointer_atomic *buckets;
                ParallelHashJoinBatch *old_batch0;
@@ -1186,7 +1186,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable)
        case PHJ_GROW_BATCHES_ALLOCATING:
            /* Wait for the above to be finished. */
            BarrierArriveAndWait(&pstate->grow_batches_barrier,
-                                WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATING);
+                                WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATE);
            /* Fall through. */
 
        case PHJ_GROW_BATCHES_REPARTITIONING:
@@ -1199,7 +1199,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable)
            ExecParallelHashMergeCounters(hashtable);
            /* Wait for the above to be finished. */
            BarrierArriveAndWait(&pstate->grow_batches_barrier,
-                                WAIT_EVENT_HASH_GROW_BATCHES_REPARTITIONING);
+                                WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION);
            /* Fall through. */
 
        case PHJ_GROW_BATCHES_DECIDING:
@@ -1210,7 +1210,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable)
             * not helping.
             */
            if (BarrierArriveAndWait(&pstate->grow_batches_barrier,
-                                    WAIT_EVENT_HASH_GROW_BATCHES_DECIDING))
+                                    WAIT_EVENT_HASH_GROW_BATCHES_DECIDE))
            {
                bool        space_exhausted = false;
                bool        extreme_skew_detected = false;
@@ -1260,7 +1260,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable)
        case PHJ_GROW_BATCHES_FINISHING:
            /* Wait for the above to complete. */
            BarrierArriveAndWait(&pstate->grow_batches_barrier,
-                                WAIT_EVENT_HASH_GROW_BATCHES_FINISHING);
+                                WAIT_EVENT_HASH_GROW_BATCHES_FINISH);
    }
 }
 
@@ -1509,7 +1509,7 @@ ExecParallelHashIncreaseNumBuckets(HashJoinTable hashtable)
        case PHJ_GROW_BUCKETS_ELECTING:
            /* Elect one participant to prepare to increase nbuckets. */
            if (BarrierArriveAndWait(&pstate->grow_buckets_barrier,
-                                    WAIT_EVENT_HASH_GROW_BUCKETS_ELECTING))
+                                    WAIT_EVENT_HASH_GROW_BUCKETS_ELECT))
            {
                size_t      size;
                dsa_pointer_atomic *buckets;
@@ -1538,7 +1538,7 @@ ExecParallelHashIncreaseNumBuckets(HashJoinTable hashtable)
        case PHJ_GROW_BUCKETS_ALLOCATING:
            /* Wait for the above to complete. */
            BarrierArriveAndWait(&pstate->grow_buckets_barrier,
-                                WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATING);
+                                WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATE);
            /* Fall through. */
 
        case PHJ_GROW_BUCKETS_REINSERTING:
@@ -1573,7 +1573,7 @@ ExecParallelHashIncreaseNumBuckets(HashJoinTable hashtable)
                CHECK_FOR_INTERRUPTS();
            }
            BarrierArriveAndWait(&pstate->grow_buckets_barrier,
-                                WAIT_EVENT_HASH_GROW_BUCKETS_REINSERTING);
+                                WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT);
    }
 }
 
index cc8edacdd01799152203a0a8ac41f442ac395946..2cdc38a601475a9352166dd8826f03b9984b6fda 100644 (file)
@@ -327,7 +327,7 @@ ExecHashJoinImpl(PlanState *pstate, bool parallel)
                        if (hashtable->nbatch > 1)
                            ExecParallelHashJoinPartitionOuter(node);
                        BarrierArriveAndWait(build_barrier,
-                                            WAIT_EVENT_HASH_BUILD_HASHING_OUTER);
+                                            WAIT_EVENT_HASH_BUILD_HASH_OUTER);
                    }
                    Assert(BarrierPhase(build_barrier) == PHJ_BUILD_DONE);
 
@@ -1135,14 +1135,14 @@ ExecParallelHashJoinNewBatch(HashJoinState *hjstate)
 
                    /* One backend allocates the hash table. */
                    if (BarrierArriveAndWait(batch_barrier,
-                                            WAIT_EVENT_HASH_BATCH_ELECTING))
+                                            WAIT_EVENT_HASH_BATCH_ELECT))
                        ExecParallelHashTableAlloc(hashtable, batchno);
                    /* Fall through. */
 
                case PHJ_BATCH_ALLOCATING:
                    /* Wait for allocation to complete. */
                    BarrierArriveAndWait(batch_barrier,
-                                        WAIT_EVENT_HASH_BATCH_ALLOCATING);
+                                        WAIT_EVENT_HASH_BATCH_ALLOCATE);
                    /* Fall through. */
 
                case PHJ_BATCH_LOADING:
@@ -1162,7 +1162,7 @@ ExecParallelHashJoinNewBatch(HashJoinState *hjstate)
                    }
                    sts_end_parallel_scan(inner_tuples);
                    BarrierArriveAndWait(batch_barrier,
-                                        WAIT_EVENT_HASH_BATCH_LOADING);
+                                        WAIT_EVENT_HASH_BATCH_LOAD);
                    /* Fall through. */
 
                case PHJ_BATCH_PROBING:
index 5fc35ded192355f918e045f8f908ffd2849c691f..d7f99d9944c20d3e4011223b2c0a25f52d3ea169 100644 (file)
@@ -3774,56 +3774,53 @@ pgstat_get_wait_ipc(WaitEventIPC w)
        case WAIT_EVENT_CHECKPOINT_START:
            event_name = "CheckpointStart";
            break;
-       case WAIT_EVENT_CLOG_GROUP_UPDATE:
-           event_name = "ClogGroupUpdate";
-           break;
        case WAIT_EVENT_EXECUTE_GATHER:
            event_name = "ExecuteGather";
            break;
-       case WAIT_EVENT_HASH_BATCH_ALLOCATING:
-           event_name = "Hash/Batch/Allocating";
+       case WAIT_EVENT_HASH_BATCH_ALLOCATE:
+           event_name = "HashBatchAllocate";
            break;
-       case WAIT_EVENT_HASH_BATCH_ELECTING:
-           event_name = "Hash/Batch/Electing";
+       case WAIT_EVENT_HASH_BATCH_ELECT:
+           event_name = "HashBatchElect";
            break;
-       case WAIT_EVENT_HASH_BATCH_LOADING:
-           event_name = "Hash/Batch/Loading";
+       case WAIT_EVENT_HASH_BATCH_LOAD:
+           event_name = "HashBatchLoad";
            break;
-       case WAIT_EVENT_HASH_BUILD_ALLOCATING:
-           event_name = "Hash/Build/Allocating";
+       case WAIT_EVENT_HASH_BUILD_ALLOCATE:
+           event_name = "HashBuildAllocate";
            break;
-       case WAIT_EVENT_HASH_BUILD_ELECTING:
-           event_name = "Hash/Build/Electing";
+       case WAIT_EVENT_HASH_BUILD_ELECT:
+           event_name = "HashBuildElect";
            break;
-       case WAIT_EVENT_HASH_BUILD_HASHING_INNER:
-           event_name = "Hash/Build/HashingInner";
+       case WAIT_EVENT_HASH_BUILD_HASH_INNER:
+           event_name = "HashBuildHashInner";
            break;
-       case WAIT_EVENT_HASH_BUILD_HASHING_OUTER:
-           event_name = "Hash/Build/HashingOuter";
+       case WAIT_EVENT_HASH_BUILD_HASH_OUTER:
+           event_name = "HashBuildHashOuter";
            break;
-       case WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATING:
-           event_name = "Hash/GrowBatches/Allocating";
+       case WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATE:
+           event_name = "HashGrowBatchesAllocate";
            break;
-       case WAIT_EVENT_HASH_GROW_BATCHES_DECIDING:
-           event_name = "Hash/GrowBatches/Deciding";
+       case WAIT_EVENT_HASH_GROW_BATCHES_DECIDE:
+           event_name = "HashGrowBatchesDecide";
            break;
-       case WAIT_EVENT_HASH_GROW_BATCHES_ELECTING:
-           event_name = "Hash/GrowBatches/Electing";
+       case WAIT_EVENT_HASH_GROW_BATCHES_ELECT:
+           event_name = "HashGrowBatchesElect";
            break;
-       case WAIT_EVENT_HASH_GROW_BATCHES_FINISHING:
-           event_name = "Hash/GrowBatches/Finishing";
+       case WAIT_EVENT_HASH_GROW_BATCHES_FINISH:
+           event_name = "HashGrowBatchesFinish";
            break;
-       case WAIT_EVENT_HASH_GROW_BATCHES_REPARTITIONING:
-           event_name = "Hash/GrowBatches/Repartitioning";
+       case WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION:
+           event_name = "HashGrowBatchesRepartition";
            break;
-       case WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATING:
-           event_name = "Hash/GrowBuckets/Allocating";
+       case WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATE:
+           event_name = "HashGrowBucketsAllocate";
            break;
-       case WAIT_EVENT_HASH_GROW_BUCKETS_ELECTING:
-           event_name = "Hash/GrowBuckets/Electing";
+       case WAIT_EVENT_HASH_GROW_BUCKETS_ELECT:
+           event_name = "HashGrowBucketsElect";
            break;
-       case WAIT_EVENT_HASH_GROW_BUCKETS_REINSERTING:
-           event_name = "Hash/GrowBuckets/Reinserting";
+       case WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT:
+           event_name = "HashGrowBucketsReinsert";
            break;
        case WAIT_EVENT_LOGICAL_SYNC_DATA:
            event_name = "LogicalSyncData";
@@ -3855,6 +3852,9 @@ pgstat_get_wait_ipc(WaitEventIPC w)
        case WAIT_EVENT_PROCARRAY_GROUP_UPDATE:
            event_name = "ProcArrayGroupUpdate";
            break;
+       case WAIT_EVENT_PROC_SIGNAL_BARRIER:
+           event_name = "ProcSignalBarrier";
+           break;
        case WAIT_EVENT_PROMOTE:
            event_name = "Promote";
            break;
@@ -3879,6 +3879,9 @@ pgstat_get_wait_ipc(WaitEventIPC w)
        case WAIT_EVENT_SYNC_REP:
            event_name = "SyncRep";
            break;
+       case WAIT_EVENT_XACT_GROUP_UPDATE:
+           event_name = "XactGroupUpdate";
+           break;
            /* no default case, so that compiler will warn */
    }
 
@@ -4025,9 +4028,6 @@ pgstat_get_wait_io(WaitEventIO w)
        case WAIT_EVENT_LOGICAL_REWRITE_WRITE:
            event_name = "LogicalRewriteWrite";
            break;
-       case WAIT_EVENT_PROC_SIGNAL_BARRIER:
-           event_name = "ProcSignalBarrier";
-           break;
        case WAIT_EVENT_RELATION_MAP_READ:
            event_name = "RelationMapRead";
            break;
index ae9a39573c70307efb09b9a5c258756b96f18066..c55dc1481ca5b4bbf3dd2acca621e06de6195c38 100644 (file)
@@ -850,25 +850,24 @@ typedef enum
    WAIT_EVENT_BGWORKER_SHUTDOWN,
    WAIT_EVENT_BGWORKER_STARTUP,
    WAIT_EVENT_BTREE_PAGE,
-   WAIT_EVENT_CLOG_GROUP_UPDATE,
    WAIT_EVENT_CHECKPOINT_DONE,
    WAIT_EVENT_CHECKPOINT_START,
    WAIT_EVENT_EXECUTE_GATHER,
-   WAIT_EVENT_HASH_BATCH_ALLOCATING,
-   WAIT_EVENT_HASH_BATCH_ELECTING,
-   WAIT_EVENT_HASH_BATCH_LOADING,
-   WAIT_EVENT_HASH_BUILD_ALLOCATING,
-   WAIT_EVENT_HASH_BUILD_ELECTING,
-   WAIT_EVENT_HASH_BUILD_HASHING_INNER,
-   WAIT_EVENT_HASH_BUILD_HASHING_OUTER,
-   WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATING,
-   WAIT_EVENT_HASH_GROW_BATCHES_DECIDING,
-   WAIT_EVENT_HASH_GROW_BATCHES_ELECTING,
-   WAIT_EVENT_HASH_GROW_BATCHES_FINISHING,
-   WAIT_EVENT_HASH_GROW_BATCHES_REPARTITIONING,
-   WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATING,
-   WAIT_EVENT_HASH_GROW_BUCKETS_ELECTING,
-   WAIT_EVENT_HASH_GROW_BUCKETS_REINSERTING,
+   WAIT_EVENT_HASH_BATCH_ALLOCATE,
+   WAIT_EVENT_HASH_BATCH_ELECT,
+   WAIT_EVENT_HASH_BATCH_LOAD,
+   WAIT_EVENT_HASH_BUILD_ALLOCATE,
+   WAIT_EVENT_HASH_BUILD_ELECT,
+   WAIT_EVENT_HASH_BUILD_HASH_INNER,
+   WAIT_EVENT_HASH_BUILD_HASH_OUTER,
+   WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATE,
+   WAIT_EVENT_HASH_GROW_BATCHES_DECIDE,
+   WAIT_EVENT_HASH_GROW_BATCHES_ELECT,
+   WAIT_EVENT_HASH_GROW_BATCHES_FINISH,
+   WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION,
+   WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATE,
+   WAIT_EVENT_HASH_GROW_BUCKETS_ELECT,
+   WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT,
    WAIT_EVENT_LOGICAL_SYNC_DATA,
    WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE,
    WAIT_EVENT_MQ_INTERNAL,
@@ -879,6 +878,7 @@ typedef enum
    WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN,
    WAIT_EVENT_PARALLEL_FINISH,
    WAIT_EVENT_PROCARRAY_GROUP_UPDATE,
+   WAIT_EVENT_PROC_SIGNAL_BARRIER,
    WAIT_EVENT_PROMOTE,
    WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT,
    WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE,
@@ -886,7 +886,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_XACT_GROUP_UPDATE
 } WaitEventIPC;
 
 /* ----------
@@ -943,7 +944,6 @@ typedef enum
    WAIT_EVENT_LOGICAL_REWRITE_SYNC,
    WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE,
    WAIT_EVENT_LOGICAL_REWRITE_WRITE,
-   WAIT_EVENT_PROC_SIGNAL_BARRIER,
    WAIT_EVENT_RELATION_MAP_READ,
    WAIT_EVENT_RELATION_MAP_SYNC,
    WAIT_EVENT_RELATION_MAP_WRITE,