Re: Block-level CRC checks - Mailing list pgsql-hackers

From Simon Riggs
Subject Re: Block-level CRC checks
Date
Msg-id 1259974318.13774.39345.camel@ebony
Whole thread Raw
In response to Re: Block-level CRC checks  (Chuck McDevitt <cmcdevitt@greenplum.com>)
List pgsql-hackers
On Fri, 2009-12-04 at 14:47 -0800, Chuck McDevitt wrote:
> A curiosity question regarding torn pages:  How does this work on file
> systems that don't write in-place, but instead always do
> copy-on-write?
> 
> My example would be Sun's ZFS file system (In Solaris & BSD).  Because
> of its "snapshot & rollback" functionality, it never writes a page
> in-place, but instead always copies it to another place on disk.  How
> does this affect the corruption caused by a torn write?
> 
> Can we end up with horrible corruption on this type of filesystem
> where we wouldn't on normal file systems, where we are writing to a
> previously zeroed area on disk?
> 
> Sorry if this is a stupid question... Hopefully somebody can reassure
> me that this isn't an issue.

Think we're still good. Not a stupid question.

Hint bits are set while the block is in shared_buffers and setting a
hint bit dirties the page, but does not write WAL.

Because the page is dirty we re-write the whole block at checkpoint, by
bgwriter cleaning or via dirty page eviction. So ZFS is OK, but we do
more writing than we want to, sometimes.

-- Simon Riggs           www.2ndQuadrant.com



pgsql-hackers by date:

Previous
From: Michael Glaesemann
Date:
Subject: Re: New VACUUM FULL
Next
From: "Massa, Harald Armin"
Date:
Subject: Re: Block-level CRC checks