On 08/26/2013 11:37 AM, Luca Ferrari wrote:
On Mon, Aug 26, 2013 at 4:57 AM, 高健 <luckyjackgao@xxxxxxxxx> wrote:
But why "writes the entire content of each disk page to WAL "?
The documentation states that: "The row-level change data normally
stored in WAL will not be enough to completely restore such a page
during post-crash recovery.". I guess that a mixed page (i.e., a page
that contains old and new data) cannot be safely recovered with
deltas, so you need to have a "clean" page image to which start
recovery.
Correct, the full-page image is needed for restoring the known state of
a page.
It also speeds up recovery because you can just fire off writes to the
pages under recovery, followed by incremental updates to the cached
copy. Without full page writes, you'd have to read the current version
of the page from the disk first, often resulting in somewhat random read
activity during recovery.
--
Florian Weimer / Red Hat Product Security Team
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general