1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Correct several behavior descriptions in comments.

Reuse cautionary language from src/test/ssl/README in
src/test/kerberos/README.  SLRUs have had access to six-character
segments names since commit 73c986adde,
and recovery stopped calling HeapTupleHeaderAdvanceLatestRemovedXid() in
commit 558a9165e0.  The other corrections
are more self-evident.
This commit is contained in:
Noah Misch
2020-08-15 20:21:52 -07:00
parent db659a3416
commit 676a9c3cc4
12 changed files with 36 additions and 50 deletions

View File

@ -635,12 +635,11 @@ be reconstructed later following a crash and the action is simply a way
of optimising for performance. When a hint is written we use
MarkBufferDirtyHint() to mark the block dirty.
If the buffer is clean and checksums are in use then
MarkBufferDirtyHint() inserts an XLOG_FPI record to ensure that we
take a full page image that includes the hint. We do this to avoid
a partial page write, when we write the dirtied page. WAL is not
written during recovery, so we simply skip dirtying blocks because
of hints when in recovery.
If the buffer is clean and checksums are in use then MarkBufferDirtyHint()
inserts an XLOG_FPI_FOR_HINT record to ensure that we take a full page image
that includes the hint. We do this to avoid a partial page write, when we
write the dirtied page. WAL is not written during recovery, so we simply skip
dirtying blocks because of hints when in recovery.
If you do decide to optimise away a WAL record, then any calls to
MarkBufferDirty() must be replaced by MarkBufferDirtyHint(),

View File

@ -367,12 +367,13 @@ SetTransactionIdLimit(TransactionId oldest_datfrozenxid, Oid oldest_datoid)
* We'll refuse to continue assigning XIDs in interactive mode once we get
* within 3M transactions of data loss. This leaves lots of room for the
* DBA to fool around fixing things in a standalone backend, while not
* being significant compared to total XID space. (Note that since
* vacuuming requires one transaction per table cleaned, we had better be
* sure there's lots of XIDs left...) Also, at default BLCKSZ, this
* leaves two completely-idle segments. In the event of edge-case bugs
* involving page or segment arithmetic, idle segments render the bugs
* unreachable outside of single-user mode.
* being significant compared to total XID space. (VACUUM requires an XID
* if it truncates at wal_level!=minimal. "VACUUM (ANALYZE)", which a DBA
* might do by reflex, assigns an XID. Hence, we had better be sure
* there's lots of XIDs left...) Also, at default BLCKSZ, this leaves two
* completely-idle segments. In the event of edge-case bugs involving
* page or segment arithmetic, idle segments render the bugs unreachable
* outside of single-user mode.
*/
xidStopLimit = xidWrapLimit - 3000000;
if (xidStopLimit < FirstNormalTransactionId)