On Wed, 2013-04-10 at 20:17 +0100, Simon Riggs wrote: > OK, so we have a single combined "calculate a checksum for a block" > function. That uses Jeff's zeroing trick and Ants' bulk-oriented > performance optimization. > > > For buffer checksums we simply calculate for the block.
Sounds good. > For WAL full page writes, we first set the checksums for all defined > buffers, then calculate the checksum of remaining data plus the > pd_checksum field from each block using the normal WAL CRC32. > > Seems good to me. One set of fast code. And it avoids the weirdness > that the checksum stored on the full page is actually wrong. Oh, that's a nice benefit. > It also means that the WAL checksum calculation includes the hole, yet > we do not include the data for the hole. So we have to do an extra > copy when restoring the backuo block. I like this, but it sounds like there is some room for discussion on some of these points. I assume changes to the WAL checksums are 9.4 material? I'm satisfied with SIMD data checksums in 9.3 and that we have a plan for using SIMD for WAL checksums later. Regards, Jeff Davis -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers