diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index fe31b7b62ec..29c56ef7c59 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -7256,7 +7256,19 @@ FROM pg_stat_get_backend_idset() AS backendid; initializing The command is preparing to begin scanning the heap. This phase is - expected to be very brief. + expected to be very brief, except for + REPACK CONCURRENTLY, where it also covers enabling + logical decoding and then initializing it. Enabling has nothing to do + if is already + logical; otherwise it waits for all processes to + acknowledge that they started writing the additional WAL information + that logical decoding requires. Initializing then waits for the + transactions that have been assigned a transaction ID to end, including + ones that started while this wait was in progress, so this phase can + last longer than the longest transaction running when the command + started. This includes any other + REPACK CONCURRENTLY, which holds a transaction ID + until it finishes. @@ -7288,7 +7300,10 @@ FROM pg_stat_get_backend_idset() AS backendid; REPACK CONCURRENTLY is currently processing the DML commands that other transactions executed during any of the preceding - phases. + phases. This phase also covers waiting for the ACCESS + EXCLUSIVE lock needed to swap the files, so a command blocked + by a conflicting lock stays in this phase. + This phase is skipped when not in concurrent mode.