Improve documentation about multixact IDs.
authorTom Lane
Mon, 17 Feb 2014 17:21:01 +0000 (12:21 -0500)
committerTom Lane
Mon, 17 Feb 2014 17:21:01 +0000 (12:21 -0500)
Per gripe from Josh Berkus.

doc/src/sgml/maintenance.sgml
doc/src/sgml/release-9.3.sgml

index 291f48a472fc81026aa78af138b9ecbb1113166a..f57c281815940dea5628f69edd8b81d7af5b3656 100644 (file)
@@ -618,13 +618,16 @@ HINT:  Stop the postmaster and use a standalone backend to VACUUM in "mydb".
     
 
     
-     Multixacts are used to implement row locking by
-     multiple transactions: since there is limited space in the tuple
-     header to store lock information, that information is stored as a
-     multixact separately in the pg_multixact subdirectory,
-     and only its ID is in the xmax field
-     in the tuple header.
-     Similar to transaction IDs, multixact IDs are implemented as a
+     Multixact IDs are used to support row locking by
+     multiple transactions.  Since there is only limited space in a tuple
+     header to store lock information, that information is encoded as
+     a multiple transaction ID, or multixact ID for short,
+     whenever there is more than one transaction concurrently locking a
+     row.  Information about which transaction IDs are included in any
+     particular multixact ID is stored separately in
+     the pg_multixact subdirectory, and only the multixact ID
+     appears in the xmax field in the tuple header.
+     Like transaction IDs, multixact IDs are implemented as a
      32-bit counter and corresponding storage, all of which requires
      careful aging management, storage cleanup, and wraparound handling.
     
@@ -636,8 +639,8 @@ HINT:  Stop the postmaster and use a standalone backend to VACUUM in "mydb".
      is replaced by a different value, which can be the zero value, a single
      transaction ID, or a newer multixact ID.  For each table,
      pg_class.relminmxid stores the oldest
-     possible value still stored in any tuple of that table.  Every time this
-     value is older than
+     possible multixact ID still appearing in any tuple of that table.
+     If this value is older than
      , a whole-table
      scan is forced.  Whole-table VACUUM scans, regardless of
      what causes them, enable advancing the value for that table.
index acc0b9d2024a5bf5a9f0023c683e9ae49217b11e..11e429bb65d9f956be4da274c62f48c2ee51e407 100644 (file)
@@ -64,9 +64,11 @@ Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
      
 
      
-      The method for tuple freezing was unable to handle some cases
-      involving freezing of multixact IDs, with the practical
-      effect that shared row-level locks might be forgotten once old enough.
+      The logic for tuple freezing was unable to handle some cases involving
+      freezing of
+      multixact
+      IDs, with the practical effect that shared row-level locks
+      might be forgotten once old enough.