Skip site navigation (1) Skip section navigation (2)

Re: Block-level CRC checks

From: pgsql(at)mohawksoft(dot)com
To: "Hannu Krosing" <hannu(at)2ndQuadrant(dot)com>
Cc: pgsql(at)mohawksoft(dot)com, "Decibel!" <decibel(at)decibel(dot)org>, "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>, "Pg Hackers" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Block-level CRC checks
Date: 2008-10-01 13:29:01
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers
> On Tue, 2008-09-30 at 17:13 -0400, pgsql(at)mohawksoft(dot)com wrote:
>> >
>> > I believe the idea was to make this as non-invasive as possible. And
>> > it would be really nice if this could be enabled without a dump/
>> > reload (maybe the upgrade stuff would make this possible?)
>> > --
>> It's all about the probability of a duplicate check being generated. If
>> you use a 32 bit checksum, then you have a theoretical probability of 1
>> in
>> 4 billion that a corrupt block will be missed (probably much lower
>> depending on your algorithm). If you use a short, then a 1 in 65
>> thousand
>> probability. If you use an 8 bit number, then 1 in 256.
>> Why am I going on? Well, if there are any spare bits in a block header,
>> they could be used for the check value.
> Even and 64-bit integer is just 0.1% of 8k page size, and it is even
> less than 0.1% likely that page will be 100% full and thus that 64bits
> wastes any real space at all.
> So I don't think that this is a space issue.

Oh, I don't think it is a space issue either, the question was could there
be a way to do it without a dump and restore. The only way that occurs to
me is if there are some unused bits in the block header. I haven't looked
at that code in years. The numerics of it are just a description of the
probability of a duplicate sum or crc, meaning a false OK.

Also, regardless of whether or not the block is full, the block is read
and written as a block and that the underlying data unimportant.

In response to

pgsql-hackers by date

Next:From: pgsqlDate: 2008-10-01 13:38:54
Subject: Re: Block-level CRC checks
Previous:From: Jonah H. HarrisDate: 2008-10-01 13:27:56
Subject: Re: Block-level CRC checks

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group