File tree Expand file tree Collapse file tree 4 files changed +13
-12
lines changed Expand file tree Collapse file tree 4 files changed +13
-12
lines changed Original file line number Diff line number Diff line change @@ -4544,13 +4544,16 @@ SELECT * FROM pg_attribute
4544
4544
<para>
4545
4545
Another identifier type used by the system is <type>xid</>, or transaction
4546
4546
(abbreviated <abbrev>xact</>) identifier. This is the data type of the system columns
4547
- <structfield>xmin</> and <structfield>xmax</>. Transaction identifiers are 32-bit quantities.
4547
+ <structfield>xmin</> and <structfield>xmax</>.
4548
+ In <productname>&productname;</productname>, transaction IDs
4549
+ are implemented as 64-bit counters to prevent transaction ID wraparound.
4550
+ For details, see <xref linkend="vacuum-for-wraparound">.
4548
4551
</para>
4549
4552
4550
4553
<para>
4551
4554
A third identifier type used by the system is <type>cid</>, or
4552
4555
command identifier. This is the data type of the system columns
4553
- <structfield>cmin</> and <structfield>cmax</>. Command identifiers are also 32-bit quantities.
4556
+ <structfield>cmin</> and <structfield>cmax</>. Command identifiers are 32-bit quantities.
4554
4557
</para>
4555
4558
4556
4559
<para>
Original file line number Diff line number Diff line change @@ -1096,16 +1096,13 @@ CREATE TABLE circles (
1096
1096
</para>
1097
1097
1098
1098
<para>
1099
- Transaction identifiers are also 32-bit quantities. In a
1100
- long-lived database it is possible for transaction IDs to wrap
1101
- around. This is not a fatal problem given appropriate maintenance
1102
- procedures; see <xref linkend="maintenance"> for details. It is
1103
- unwise, however, to depend on the uniqueness of transaction IDs
1104
- over the long term (more than one billion transactions).
1099
+ In <productname>&productname;</productname>, transaction IDs
1100
+ are implemented as 64-bit counters to prevent transaction ID wraparound.
1101
+ For details, see <xref linkend="vacuum-for-wraparound">.
1105
1102
</para>
1106
1103
1107
1104
<para>
1108
- Command identifiers are also 32-bit quantities. This creates a hard limit
1105
+ Command identifiers are 32-bit quantities. This creates a hard limit
1109
1106
of 2<superscript>32</> (4 billion) <acronym>SQL</acronym> commands
1110
1107
within a single transaction. In practice this limit is not a
1111
1108
problem — note that the limit is on the number of
Original file line number Diff line number Diff line change @@ -17198,8 +17198,9 @@ SELECT collation for ('foo' COLLATE "de_DE");
17198
17198
</table>
17199
17199
17200
17200
<para>
17201
- The internal transaction ID type (<type>xid</>) is 32 bits wide and
17202
- wraps around every 4 billion transactions. However, these functions
17201
+ In <productname>&productname;</productname>, transaction IDs
17202
+ are implemented as 64-bit counters to prevent transaction ID wraparound.
17203
+ The following functions
17203
17204
export a 64-bit format that is extended with an <quote>epoch</> counter
17204
17205
so it will not wrap around during the life of an installation.
17205
17206
The data type used by these functions, <type>txid_snapshot</type>,
Original file line number Diff line number Diff line change 405
405
<productname>Postgres Pro Enterprise 9.6</productname> introduced
406
406
64-bit transaction IDs, which are not subject to wraparound and
407
407
do not need modulo-2<superscript>32</> arithmetic to be compared.
408
- Each tuple header contain two XIDs, so extending them would lead to
408
+ Each tuple header contains two XIDs, so extending them would lead to
409
409
high overhead. For that reason on-page XIDs are still 32-bit, but
410
410
each page's header contains an offset, called <firstterm>epoch</>,
411
411
to which they are added before comparing with each other.
You can’t perform that action at this time.
0 commit comments