Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite7f4097

Browse files
committed
Improve documentation about multixact IDs.
Per gripe from Josh Berkus.
1 parent6ef3254 commite7f4097

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

‎doc/src/sgml/maintenance.sgml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -616,13 +616,16 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
616616
</indexterm>
617617

618618
<para>
619-
<firstterm>Multixacts</> are used to implement row locking by
620-
multiple transactions: since there is limited space in the tuple
621-
header to store lock information, that information is stored as a
622-
multixact separately in the <filename>pg_multixact</> subdirectory,
623-
and only its ID is in the <structfield>xmax</> field
624-
in the tuple header.
625-
Similar to transaction IDs, multixact IDs are implemented as a
619+
<firstterm>Multixact IDs</> are used to support row locking by
620+
multiple transactions. Since there is only limited space in a tuple
621+
header to store lock information, that information is encoded as
622+
a <quote>multiple transaction ID</>, or multixact ID for short,
623+
whenever there is more than one transaction concurrently locking a
624+
row. Information about which transaction IDs are included in any
625+
particular multixact ID is stored separately in
626+
the <filename>pg_multixact</> subdirectory, and only the multixact ID
627+
appears in the <structfield>xmax</> field in the tuple header.
628+
Like transaction IDs, multixact IDs are implemented as a
626629
32-bit counter and corresponding storage, all of which requires
627630
careful aging management, storage cleanup, and wraparound handling.
628631
</para>
@@ -634,8 +637,8 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
634637
is replaced by a different value, which can be the zero value, a single
635638
transaction ID, or a newer multixact ID. For each table,
636639
<structname>pg_class</>.<structfield>relminmxid</> stores the oldest
637-
possiblevaluestillstored in any tuple of that table. Every time this
638-
value is older than
640+
possiblemultixact IDstillappearing in any tuple of that table.
641+
If thisvalue is older than
639642
<xref linkend="guc-vacuum-multixact-freeze-table-age">, a whole-table
640643
scan is forced. Whole-table <command>VACUUM</> scans, regardless of
641644
what causes them, enable advancing the value for that table.

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
6464
</para>
6565

6666
<para>
67-
The method for tuple freezing was unable to handle some cases
68-
involving freezing of <quote>multixact</> IDs, with the practical
69-
effect that shared row-level locks might be forgotten once old enough.
67+
The logic for tuple freezing was unable to handle some cases involving
68+
freezing of
69+
<link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
70+
IDs</link>, with the practical effect that shared row-level locks
71+
might be forgotten once old enough.
7072
</para>
7173

7274
<para>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp