Re: New CRC algorithm: Slicing by 8
От | Simon Riggs |
---|---|
Тема | Re: New CRC algorithm: Slicing by 8 |
Дата | |
Msg-id | 1161683566.3861.142.camel@silverbirch.site обсуждение исходный текст |
Ответ на | Re: New CRC algorithm: Slicing by 8 (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: New CRC algorithm: Slicing by 8
|
Список | pgsql-hackers |
On Mon, 2006-10-23 at 15:12 -0400, Tom Lane wrote: > "Simon Riggs" <simon@2ndquadrant.com> writes: > > On Mon, 2006-10-23 at 13:52 -0400, Tom Lane wrote: > >> No can do --- we rely on the checksums to be able to tell when we've hit > >> the end of WAL during replay. > > > No we don't: Zero length records are the trigger for EOF. > > Only if the file happens to be all-zero already, which is not the normal > operating state (see WAL-file recycling). Otherwise you have to be able > to detect an invalid record. OK. > There are actually three checks used to detect end of WAL: zero record > length, invalid checksum, and incorrect back-pointer. Zero length is > the first and cleanest-looking test, but AFAICS we have to have both of > the others to avoid obvious failure modes. Well, I understand the need for the zero-length test and the incorrect back pointer (which also incidentally tests that the current record was not left over from previous use of xlog file). The checksum protects from torn pages and disk errors. If you have full_page_writes set then you already believe yourself safe from torn pages and your disks could also already be CRC-checking the data. So you don't *need* the checksum in those cases. If we really think we need it we could put the xlprev pointer as the *last* field on the xlrec, just to make doubly sure - having a trailer as well as a header. CRC-checked disks are actually the industry norm and have been for around 5 years. ANSI SCSI Parallel Interface 3 (SPI-3) (UltraSCSI 160) defines the use of CRC and this is available as standard from all key manufacturers. (CRC-32 is the required level). So if you are using modern SCSI, SATA or SAS technologies you'll be just fine. (Those checks are a *requirement* of the underlying technology because of the error rates when the bus speeds are so high.) I checked this out in a conversation with the fine people at Seagate, who also publish a variety of technical manuals/details on this, e.g. http://www.maxtor.com/_files/maxtor/en_us/documentation/white_papers_technical/wp_ultra320.pdf ...You'll see that CRC is a Mandatory Feature of ANSI SPI-4 now. http://www.maxtor.com/_files/maxtor/en_us/documentation/white_papers_technical/sas_link_layer.pdf So, I'd like the *option* to turn our CRC off, please, somehow. -- Simon Riggs EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: