>  Thanks for the input Darren, but I'm still confused about DNODE
> atomicity ... it's difficult to imagine that a change that is made
> anyplace in the zpool would require copy operations all the way back
> up to the uberblock (e.g. if some single file in one of many file
> systems in a zpool was suddenly changed, making a new copy of all of
> the interceeding objects in the tree back to the uberblock would seem
> to be an untenable amount of work even though it may all be carried
> out in memory and not involve any IO, although if the zpool itself was
> under snapshot control this would have to happen)

How many objects need to change?  Not that many.

 ... the DNODE
> implementation appears to include its own checksum field
> (self-checksumming), and controlling DNODEs (those that lead to
> decendent collections of DNODEs) are always of the known type
> DMU_OT_DNODE and so their block pointers do not have to checksum the
> DNODEs they point to (unlike all other block pointers that do cehcksum
> the data they point to) ... this would allow for inplace updates of a
> DNODE, without the need to continue further up the tree ... since all
> objects are controlled by a DNODE, updates to an object's data can
> stop at its DNODE if that DNODE is not under some snapshot or clone
> control ... if this is not the case, than 'any' modification in the
> zpool would require copying up to the uberblock

I will have to go back and look at the dnode stuff in the specification.
But everything I know about it suggests that any committed change to the
filesystem structure (snapshots included) will require writing a new
uberblock.

Certainly the uberblock is updated periodically anyway.  Perhaps someone
knows an easy way to display the uberblock generation number so it can
be viewed as changes are occuring?


-- 
Darren Dunham                                           [EMAIL PROTECTED]
Senior Technical Consultant         TAOS            http://www.taos.com/
Got some Dr Pepper?                           San Francisco, CA bay area
         < This line left intentionally blank to confuse you. >
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to