Bill Moloney wrote:
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
This is in fact what happens. However, these changes are all batched up
(into a transaction group, or "txg"), so the overhead is minimal.
> the DNODE
implementation appears to include its own checksum field
(self-checksumming),
That is not the case. Only the uberblock and intent log blocks are
self-checksumming.
> if this is not the case, than 'any'
modification in the zpool would require copying up to the uberblock
That's correct, any modifications require modifying the uberblock (with
the exception of intent log writes).
FYI, dnodes are not involved with the snapshot mechanism. Snapshotting
happens at the dsl dataset layer, while dnodes are implemented above
that in the dmu layer. Check out dsl_dataset.[ch].
--matt
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss