On Fri, Dec 4, 2009 at 10:47 PM, Chuck McDevitt <cmcdev...@greenplum.com> 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.

It's not a stupid question, we're not 100% sure but we believe ZFS
doesn't need full page writes because it's immune to torn pages.

I think the idea of ZFS is that the new partially written page isn't
visible because it's not linked into the tree until it's been
completely written. To me it appears this would depend on the drive
system ordering writes very strictly which seems hard to be sure is
happening. Perhaps this is tied to the tricks they do to avoid
contention on the root, if they do a write barrier before every root
update that seems like it should be sufficient to me, but I don't know
at that level of detail.

-- 
greg

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to