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.


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

Reply via email to