Doc: Clarify the `inactive_since` field description.
authorAmit Kapila <[email protected]>
Mon, 25 Nov 2024 05:42:32 +0000 (11:12 +0530)
committerAmit Kapila <[email protected]>
Mon, 25 Nov 2024 05:42:32 +0000 (11:12 +0530)
Updated to specify that it represents the exact time a slot became
inactive, rather than the period of inactivity.

Reported-by: Peter Smith
Author: Bruce Momjian, Nisha Moond
Reviewed-by: Amit Kapila, Peter Smith
Back-through: 17
Discussion: https://postgr.es/m/CAHut+PuvsyA5v8y7rYoY9mkDQzUhwaESM05yCByTMaDoRh30tA@mail.gmail.com

doc/src/sgml/system-views.sgml
src/backend/replication/logical/slotsync.c
src/include/replication/slot.h

index 61d28e701f29a8af83f8cfe969b43cb03af87eca..a586156614d15179db42554403adf99d908445dc 100644 (file)
@@ -2435,7 +2435,7 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
        <structfield>active</structfield> <type>bool</type>
       </para>
       <para>
-       True if this slot is currently actively being used
+       True if this slot is currently being streamed
       </para></entry>
      </row>
 
@@ -2444,9 +2444,8 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
        <structfield>active_pid</structfield> <type>int4</type>
       </para>
       <para>
-       The process ID of the session using this slot if the slot
-       is currently actively being used. <literal>NULL</literal> if
-       inactive.
+       The process ID of the session  data for this slot.
+       <literal>NULL</literal> if inactive.
       </para></entry>
      </row>
 
@@ -2566,15 +2565,18 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
        <structfield>inactive_since</structfield> <type>timestamptz</type>
       </para>
       <para>
-        The time since the slot has become inactive.
-        <literal>NULL</literal> if the slot is currently being used.
+        The time when the slot became inactive. <literal>NULL</literal> if the
+        slot is currently being streamed.
         Note that for slots on the standby that are being synced from a
         primary server (whose <structfield>synced</structfield> field is
-        <literal>true</literal>), the
-        <structfield>inactive_since</structfield> indicates the last
-        synchronization (see
-        <xref linkend="logicaldecoding-replication-slots-synchronization"/>)
-        time.
+        <literal>true</literal>), the <structfield>inactive_since</structfield>
+        indicates the time when slot synchronization (see <xref
+        linkend="logicaldecoding-replication-slots-synchronization"/>)
+        was most recently stopped.  <literal>NULL</literal> if the slot
+        has always been synchronized. On standby, this is useful for slots
+        that are being synced from a primary server (whose
+        <structfield>synced</structfield> field is <literal>true</literal>)
+        so they know when the slot stopped being synchronized.
       </para></entry>
      </row>
 
index d62186a5107ebc841db02846d4b0f7f9055c7d26..f4f80b23129e6c1b4085125acb525e52f7e097ea 100644 (file)
@@ -1515,7 +1515,7 @@ update_synced_slots_inactive_since(void)
     * correctly interpret the inactive_since if the standby gets promoted
     * without a restart. We don't want the slots to appear inactive for a
     * long time after promotion if they haven't been synchronized recently.
-    * Whoever acquires the slot i.e.makes the slot active will reset it.
+    * Whoever acquires the slot, i.e., makes the slot active, will reset it.
     */
    if (!StandbyMode)
        return;
index 45582cf9d894c48b5187dda550a1af816f30e9fc..d2cf786fd573d863d4fe16175c79095995126a64 100644 (file)
@@ -205,7 +205,11 @@ typedef struct ReplicationSlot
     */
    XLogRecPtr  last_saved_confirmed_flush;
 
-   /* The time since the slot has become inactive */
+   /*
+    * The time when the slot became inactive. For synced slots on a standby
+    * server, it represents the time when slot synchronization was most
+    * recently stopped.
+    */
    TimestampTz inactive_since;
 } ReplicationSlot;