On Feb 28, 2007, at 4:40 PM, Jonah H. Harris wrote:
Oracle, Microsoft, IBM, Sybase, Teradata, MySQL, and Firebird have a clever feature called page checksumming which I think we should copy because it's simple and effective at detecting page-level corruption due to torn pages and/or faulty storage hardware.
Any system that does enough I/O will occasionally generate corrupted pages in the complete absence of any other detectable fault or hardware failure. A fair amount has been written about it with respect to large-scale computing and it happens often enough when systems start getting large that just about everyone implements software I/O checksumming eventually to deal with the problem. I simply assumed that PostgreSQL was doing the same since it is definitely used for systems that are large enough that this becomes a statistically significant issue.
A popular alternative to CRC32 for this purpose is the significantly cheaper and almost as effective is the Adler32 algorithm. I know Google used this algorithm when they added checksumming to their database to tame inexplicable transient corruption.
Cheers, J. Andrew Rogers ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match