Re: Enabling Checksums
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: Craig Ringer <craig@2ndquadrant.com>, Markus Wanner <markus@bluegap.ch>, Jesper Krogh <jesper@krogh.cc>, pgsql-hackers@postgresql.org
Date: 2012-11-19T16:48:52Z
Lists: pgsql-hackers
On Thu, Nov 15, 2012 at 2:44 PM, Jeff Davis <pgsql@j-davis.com> wrote: > The issue about external utilities is a bigger problem than I realized > at first. Originally, I thought that it was just a matter of code to > associate the checksum with the data. > > However, an external utility will never see a torn page while the system > is online (after recovery); but it *will* see an inconsistent view of > the checksum and the data if they are issued in separate write() calls. > So, the hazard of storing the checksum in a different place is not > equivalent to the existing hazard of a torn page. I agree that the hazards are not equivalent, but I'm not sure I agree that an external utility will never see a torn page while the system is on-line. We have a bunch of code that essentially forces full_page_writes=on during a base backup even if it's normally off. I think that's necessary precisely because neither the 8kB write() nor the unknown-sized-read used by the external copy program are guaranteed to be atomic. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company