diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index 9d8fa0bec3f..b1b077c97f8 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -10238,7 +10238,7 @@ SCRAM-SHA-256$<iteration count>:&l tuple, transactionid, virtualxid, - speculative token, + spectoken, object, userlock, or advisory. diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 42755659e1b..be31ac48b13 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -919,68 +919,66 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser Activity - The server process is idle. This is used by - system processes waiting for activity in their main processing loop. - wait_event will identify the specific wait point. - See . + The server process is idle. This event type indicates a process + waiting for activity in its main processing loop. + wait_event will identify the specific wait point; + see . BufferPin - The server process is waiting to access to - a data buffer during a period when no other process can be - examining that buffer. Buffer pin waits can be protracted if - another process holds an open cursor which last read data from the + The server process is waiting for exclusive access to + a data buffer. Buffer pin waits can be protracted if + another process holds an open cursor that last read data from the buffer in question. See . Client - The server process is waiting for some activity - on a socket from user applications, and that the server expects - something to happen that is independent from its internal processes. - wait_event will identify the specific wait point. - See . + The server process is waiting for activity on a socket + connected to a user application. Thus, the server expects something + to happen that is independent of its internal processes. + wait_event will identify the specific wait point; + see . Extension - The server process is waiting for activity - in an extension module. This category is useful for modules to - track custom waiting points. + The server process is waiting for some condition defined by an + extension module. See . IO - The server process is waiting for a IO to complete. - wait_event will identify the specific wait point. - See . + The server process is waiting for an I/O operation to complete. + wait_event will identify the specific wait point; + see . IPC - The server process is waiting for some activity - from another process in the server. wait_event will - identify the specific wait point. - See . + The server process is waiting for some interaction with + another server process. wait_event will + identify the specific wait point; + see . Lock - The backend is waiting for a heavyweight lock. + The server process is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event - will identify the type of lock awaited. - See . + will identify the type of lock awaited; + see . LWLock - The backend is waiting for a lightweight lock. - Each such lock protects a particular data structure in shared memory. + The server process is waiting for a lightweight lock. + Most such locks protect a particular data structure in shared memory. wait_event will contain a name identifying the purpose of the lightweight lock. (Some locks have specific names; others are part of a group of locks each with a similar purpose.) @@ -991,7 +989,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser Timeout The server process is waiting for a timeout to expire. wait_event will identify the specific wait - point. See . + point; see . @@ -1011,7 +1009,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser ArchiverMain - Waiting in main loop of the archiver process. + Waiting in main loop of archiver process. AutoVacuumMain @@ -1023,8 +1021,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser BgWriterMain - Waiting in main loop of background writer process background - worker. + Waiting in main loop of background writer process. CheckpointerMain @@ -1032,19 +1029,20 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser LogicalApplyMain - Waiting in main loop of logical apply process. + Waiting in main loop of logical replication apply process. LogicalLauncherMain - Waiting in main loop of logical launcher process. + Waiting in main loop of logical replication launcher process. PgStatMain - Waiting in main loop of the statistics collector process. + Waiting in main loop of statistics collector process. RecoveryWalStream - Waiting for WAL from a stream at recovery. + Waiting in main loop of startup process for WAL to arrive, during + streaming recovery. SysLoggerMain @@ -1079,7 +1077,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser BufferPin - Waiting to acquire a pin on a buffer. + Waiting to acquire an exclusive pin on a buffer. @@ -1106,7 +1104,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser GSSOpenServer - Waiting to read data from the client while establishing the GSSAPI + Waiting to read data from the client while establishing a GSSAPI session. @@ -1708,14 +1706,14 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser page - Waiting to acquire a lock on page of a relation. + Waiting to acquire a lock on a page of a relation. relation Waiting to acquire a lock on a relation. - speculative token + spectoken Waiting to acquire a speculative insertion lock. @@ -1732,7 +1730,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser virtualxid - Waiting to acquire a virtual xid lock. + Waiting to acquire a virtual transaction ID lock. @@ -2072,7 +2070,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser Extensions can add LWLock types to the list shown in . In some cases, the name assigned by an extension will not be available in all server processes; - so a wait event might be reported as + so an LWLock wait event might be reported as just extension rather than the extension-assigned name. @@ -2095,17 +2093,18 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser PgSleep - Waiting in process that called pg_sleep. + Waiting due to a call to pg_sleep or + a sibling function. RecoveryApplyDelay - Waiting to apply WAL at recovery because it is delayed. + Waiting to apply WAL during recovery because of a delay + setting. RecoveryRetrieveRetryInterval - Waiting when WAL data is not available from any kind of sources - (pg_wal, archive or stream) before trying - again to retrieve WAL data, at recovery. + Waiting during recovery when WAL data is not available from any + source (pg_wal, archive or stream). VacuumDelay diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c index ecb1bf92ff7..e992d1bbfce 100644 --- a/src/backend/utils/adt/lockfuncs.c +++ b/src/backend/utils/adt/lockfuncs.c @@ -22,7 +22,10 @@ #include "utils/builtins.h" -/* This must match enum LockTagType! */ +/* + * This must match enum LockTagType! Also, be sure to document any changes + * in the docs for the pg_locks view and for wait event types. + */ const char *const LockTagTypeNames[] = { "relation", "extend", @@ -30,7 +33,7 @@ const char *const LockTagTypeNames[] = { "tuple", "transactionid", "virtualxid", - "speculative token", + "spectoken", "object", "userlock", "advisory" diff --git a/src/test/isolation/expected/insert-conflict-specconflict.out b/src/test/isolation/expected/insert-conflict-specconflict.out index 9be5ccf55f0..ae361fbd03a 100644 --- a/src/test/isolation/expected/insert-conflict-specconflict.out +++ b/src/test/isolation/expected/insert-conflict-specconflict.out @@ -362,16 +362,16 @@ step controller_print_speculative_locks: SELECT pa.application_name, locktype, mode, granted FROM pg_locks pl JOIN pg_stat_activity pa USING (pid) WHERE - locktype IN ('speculative token', 'transactionid') + locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4; application_namelocktype mode granted -isolation/insert-conflict-specconflict-s1speculative tokenShareLock f +isolation/insert-conflict-specconflict-s1spectoken ShareLock f isolation/insert-conflict-specconflict-s1transactionid ExclusiveLock t -isolation/insert-conflict-specconflict-s2speculative tokenExclusiveLock t +isolation/insert-conflict-specconflict-s2spectoken ExclusiveLock t isolation/insert-conflict-specconflict-s2transactionid ExclusiveLock t step controller_unlock_2_4: SELECT pg_advisory_unlock(2, 4); pg_advisory_unlock @@ -384,7 +384,7 @@ step controller_print_speculative_locks: SELECT pa.application_name, locktype, mode, granted FROM pg_locks pl JOIN pg_stat_activity pa USING (pid) WHERE - locktype IN ('speculative token', 'transactionid') + locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4; @@ -406,7 +406,7 @@ step controller_print_speculative_locks: SELECT pa.application_name, locktype, mode, granted FROM pg_locks pl JOIN pg_stat_activity pa USING (pid) WHERE - locktype IN ('speculative token', 'transactionid') + locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4; diff --git a/src/test/isolation/specs/insert-conflict-specconflict.spec b/src/test/isolation/specs/insert-conflict-specconflict.spec index 2572072c9e6..60283974915 100644 --- a/src/test/isolation/specs/insert-conflict-specconflict.spec +++ b/src/test/isolation/specs/insert-conflict-specconflict.spec @@ -64,7 +64,7 @@ step "controller_print_speculative_locks" { SELECT pa.application_name, locktype, mode, granted FROM pg_locks pl JOIN pg_stat_activity pa USING (pid) WHERE - locktype IN ('speculative token', 'transactionid') + locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4;