On Nov 20, 2007 5:33 PM, can you guess? <[EMAIL PROTECTED]> wrote: > > But the whole point of snapshots is that they don't > > take up extra space on the disk. If a file (and > > hence a block) is in every snapshot it doesn't mean > > you've got multiple copies of it. You only have one > > copy of that block, it's just referenced by many > > snapshots. > > I used the wording "copies of a parent" loosely to mean "previous > states of the parent that also contain pointers to the current state of > the child about to be updated in place". But children are never updated in place. When a new block is written to a leaf, new blocks are used for all the ancestors back to the superblock, and then the old ones are either freed or held on to by the snapshot.
> And in every earlier version of the parent that was updated for some > *other* reason and still contains a pointer to the current child that > someone using that snapshot must be able to follow correctly. The snapshot doesn't get the 'current' child - it gets the one that was there when the snapshot was taken. > No: every version of the parent that points to the current version of > the child must be updated. Even with clones, the two 'parent' and the 'clone' are allowed to diverge - they contain different data. Perhaps I'm missing something. Excluding ditto blocks, when in ZFS would two parents point to the same child, and need to both be updated when the child is updated? Will _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss