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

Commit 78f58f0

Browse files
committed
Improve documentation about how checkpoint spreads I/O activity.
1 parent b060c87 commit 78f58f0

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

doc/src/sgml/wal.sgml

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- $PostgreSQL: pgsql/doc/src/sgml/wal.sgml,v 1.58 2009/01/15 00:34:25 momjian Exp $ -->
1+
<!-- $PostgreSQL: pgsql/doc/src/sgml/wal.sgml,v 1.59 2009/04/09 16:20:50 momjian Exp $ -->
22

33
<chapter id="wal">
44
<title>Reliability and the Write-Ahead Log</title>
@@ -326,17 +326,26 @@
326326
are points in the sequence of transactions at which it is guaranteed
327327
that the data files have been updated with all information written before
328328
the checkpoint. At checkpoint time, all dirty data pages are flushed to
329-
disk and a special checkpoint record is written to the log file.
329+
disk and a special checkpoint record is written to the log file.
330+
(The changes were previously flushed to the <acronym>WAL</acronym> files.)
330331
In the event of a crash, the crash recovery procedure looks at the latest
331332
checkpoint record to determine the point in the log (known as the redo
332333
record) from which it should start the REDO operation. Any changes made to
333-
data files before that point are known to be already on disk. Hence, after
334-
a checkpoint has been made, any log segments preceding the one containing
334+
data files before that point are guaranteed to be already on disk. Hence, after
335+
a checkpoint, log segments preceding the one containing
335336
the redo record are no longer needed and can be recycled or removed. (When
336337
<acronym>WAL</acronym> archiving is being done, the log segments must be
337338
archived before being recycled or removed.)
338339
</para>
339340

341+
<para>
342+
The checkpoint requirement of flushing all dirty data pages to disk
343+
can cause a significant I/O load. For this reason, checkpoint
344+
activity is throttled so I/O begins at checkpoint start and completes
345+
before the next checkpoint starts; this minimizes performance
346+
degradation during checkpoints.
347+
</para>
348+
340349
<para>
341350
The server's background writer process will automatically perform
342351
a checkpoint every so often. A checkpoint is created every <xref

0 commit comments

Comments
 (0)