On Thu, Dec 29, 2011 at 6:44 PM, Kevin Grittner <kevin.gritt...@wicourts.gov> wrote: > positives. To get this right for a checksum in the page header, > double-write would need to be used for all cases where > full_page_writes now are used (i.e., the first write of a page after > a checkpoint), and for all unlogged writes (e.g., hint-bit-only > writes). There would be no correctness problem for always using > double-write, but it would be unnecessary overhead for other page > writes, which I think we can avoid.
Unless I'm missing something, double-writes are needed for all writes, not only the first page after a checkpoint. Consider this sequence of events: 1. Checkpoint 2. Double-write of page A (DW buffer write, sync, heap write) 3. Sync of heap, releasing DW buffer for new writes. ... some time goes by 4. Regular write of page A 5. OS writes one part of page A 6. Crash! Now recovery comes along, page A is broken in the heap with no double-write buffer backup nor anything to recover it by in the WAL. -- Ants Aasma -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers