Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 57184c3

Browse files
committed
docs: Make claims about the benefits of HOT updates more precise.
The old text claims that HOT completely removes old row versions. It was unclear whether it just meant the tuples themselves, or the tuples together with their line pointers. If it meant the former, it was wrong because we can remove dead row versions even when no HOT updates have occurred, so it's not describing a benefit of HOT. If it meant the latter, it was wrong because HOT doesn't allow reclaiming the root tuple's line pointer. This section does seems like it's intended to be more of an informal introduction to HOT than a precise technical description of every detail of how it works, but we still don't want it to say things that are just not true, so update the text enough to avoid that. Patch by me, reviewed by James Coleman (although he would have preferred more extensive changes) and Shubham Khanna. Discussion: http://postgr.es/m/CA+TgmobH6DPmR-u--Xgeg8cYUwhDhypNsv38nDrAJyf_xno=TQ@mail.gmail.com
1 parent 84d8066 commit 57184c3

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

doc/src/sgml/storage.sgml

+11-5
Original file line numberDiff line numberDiff line change
@@ -1122,11 +1122,17 @@ data. Empty in ordinary tables.</entry>
11221122
</listitem>
11231123
<listitem>
11241124
<para>
1125-
Old versions of updated rows can be completely removed during normal
1126-
operation, including <command>SELECT</command>s, instead of requiring
1127-
periodic vacuum operations. (This is possible because indexes
1128-
do not reference their <link linkend="storage-page-layout">page
1129-
item identifiers</link>.)
1125+
When a row is updated multiple times, row versions other than the oldest
1126+
and the newest can be completely removed during normal operation,
1127+
including <command>SELECT</command>s, instead of requiring periodic vacuum
1128+
operations. (Indexes always refer to the
1129+
<link linkend="storage-page-layout">page item identifier</link> of the
1130+
original row version. The tuple data associated with that row version
1131+
is removed, and its item identifier is converted to a redirect that
1132+
points to the oldest version that may still be visible to some concurrent
1133+
transaction. Intermediate row versions that are no longer visible to
1134+
anyone are completely removed, and the associated page item identifiers
1135+
are made available for reuse.)
11301136
</para>
11311137
</listitem>
11321138
</itemizedlist>

0 commit comments

Comments
 (0)