Re: Enabling Checksums
Jeff Davis <pgsql@j-davis.com>
From: Jeff Davis <pgsql@j-davis.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Pavel Stehule <pavel.stehule@gmail.com>, Josh Berkus <josh@agliodbs.com>, pgsql-hackers@postgresql.org
Date: 2012-11-15T01:40:58Z
Lists: pgsql-hackers
Attachments
- checksums.patch.gz (application/x-gzip) patch
- replace-tli-with-checksums.patch.gz (application/x-gzip) patch
On Tue, 2012-11-13 at 15:27 -0500, Robert Haas wrote: > A small > patch that gets committed is better than a big one that doesn't. Here's a small patch (two, actually, because the TLI one is uninteresting and noisy). It's based on Simon's patch, but with some significant changes: * I ripped out all of the handling for a mix of some checksummed and some non-checksummed pages. No more control bits or page version stuff. * I moved the checksum to the pd_tli field, and renamed it pd_checksum. * vm/fsm_extend were not setting the verification information for some reason. I'm not sure why, but since it's now on/off for the entire system, they need to do the same thing. * Added a flag to pg_control called data_checksums. It is set by initdb when the "-k"/"--data-checksums" option is specified (open for discussion). * Added a function in xlog.c that is a simple reader of the control file flag. * Got rid of page_checksums GUC. * Incorporated the page number into the checksum calculation, to detect pages that are transposed. I'll do another pass to make sure I update all of the comments, and try to self review it. So, slightly rough in some places. Regards, Jeff Davis