On Tue, 2006-10-24 at 10:18 -0400, [EMAIL PROTECTED] wrote: > On Tue, Oct 24, 2006 at 02:52:36PM +0100, Simon Riggs wrote: > > On Tue, 2006-10-24 at 09:37 -0400, Tom Lane wrote: > > > No, because unlike tuples, WAL records can and do cross page boundaries. > > > But not that often, with full_page_writes = off. So we could get away > > with just CRC checking the page-spanning ones and mark the records to > > show whether they have been CRC checked or not and need to be rechecked > > at recovery time. That would reduce the CRC overhead to about 1-5% of > > what it is now (as an option). > > WAL pages 8 Kbytes, and disk pages 512 bytes, correct? I don't see a > guarantee in here that the 8 Kbytes worth of data will be written as > sequential writes, nor that the 8 Kbytes of data will necessarily > finish. > > If the operating system uses 8 Kbyte pages, or the RAID system uses 8 > Kbytes or larger chunks, and they guarantee sequential writes, perhaps > it is ok. Still, if the power goes out after writing the first 512 > bytes, 2048 bytes, or 4096 bytes, then what? With RAID involved it > might get better or worse, depending on the RAID configuration.
That is the torn-page problem. If your system doesn't already protect you against this you have no business turning off full_page_writes, which was one of my starting assumptions. -- Simon Riggs EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend