Updated both patches. Changes: * Moved the changes to pageinspect into the TLI patch, because it makes more sense to be a part of that patch and it also reduces the size of the main checksums patch. * Fix off-by-one bug in checksum calculation * Replace "VerificationInfo" in the function names with "Checksum", which is shorter. * Make the checksum algorithm process 4 bytes at a time and sum into a signed 64-bit int, which is faster than byte-at-a-time. Also, forbid zero in either byte of the checksum, because that seems like a good idea.
I've done quite a bit of testing at this point, and everything seems fine to me. I've tested various kinds of errors (bytes being modified or zeroed at various places of the header and data areas, transposed pages) at 8192 and 32768 page sizes. I also looked at the distribution of checksums in various ways (group by checksum % <prime> for various primes, and not seeing any skew), and I didn't see any worrying patterns. Regards, Jeff Davis
replace-tli-with-checksums-20121125.patch.gz
Description: GNU Zip compressed data
checksums-20121125.patch.gz
Description: GNU Zip compressed data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers