Re: Question on Postgres Index internals

From: Craig Ringer <ringerc(at)ringerc(dot)id(dot)au>
To: A J <s5aly(at)yahoo(dot)com>
Cc: PG Admin <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Question on Postgres Index internals
Date: 2011-08-26 04:14:25
Message-ID: 4E571DA1.9000206@ringerc.id.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On 21/08/2011 11:07 PM, A J wrote:
> So I assume there is no redundant information stored such as checksum
> to validate the files against the stored checksums.

Nope, there are no checksums.

It's the storage subsystem's job to make sure it doesn't mangle data on
disk and reads the data as it was written. It's the OS's job to make
sure nobody else overwrites or messes with that data while it's in RAM
cache or on disk.

Index corruption means you've hit a hardware fault, OS bug, or possibly
a PostgreSQL bug.

Only some kinds of corruption could be detected by application-level
checksums. If the OS or storage subsystem just failed to write a page,
Pg wouldn't be able to tell, for example. Checksums _would_ detect split
page writes, single-bit faults, corrupted disk sectors and the like and
could potentially be useful.

> I don't have an active issue. Just trying to understand in detail how
> Postgres behaves under index corruption.

Like most forms of fault behaviour, it is undefined in the "C standard"
sense of the meaning, though perhaps not quite as willing to just eat
data ;-)

--
Craig Ringer

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Lukasz Brodziak 2011-08-26 07:00:48 Re: What is postgresql status? I'm not sure
Previous Message Scott Marlowe 2011-08-26 03:14:17 Re: Database alias