Re: 16-bit page checksums for 9.2

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Simon Riggs <simon@2ndQuadrant.com>
Cc: Kevin Grittner <Kevin.Grittner@wicourts.gov>, stark@mit.edu, aidan@highrise.ca, pgsql-hackers@postgresql.org
Date: 2011-12-28T07:42:10Z
Lists: pgsql-hackers
On 28.12.2011 01:39, Simon Riggs wrote:
> On Tue, Dec 27, 2011 at 8:05 PM, Heikki Linnakangas
> <heikki.linnakangas@enterprisedb.com>  wrote:
>> On 25.12.2011 15:01, Kevin Grittner wrote:
>>>
>>> I don't believe that.  Double-writing is a technique to avoid torn
>>> pages, but it requires a checksum to work.  This chicken-and-egg
>>> problem requires the checksum to be implemented first.
>>
>>
>> I don't think double-writes require checksums on the data pages themselves,
>> just on the copies in the double-write buffers. In the double-write buffer,
>> you'll need some extra information per-page anyway, like a relfilenode and
>> block number that indicates which page it is in the buffer.
>
> How would you know when to look in the double write buffer?

You scan the double-write buffer, and every page in the double write 
buffer that has a valid checksum, you copy to the main storage. There's 
no need to check validity of pages in the main storage.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com