Hello all, I recently heard an argument from a colleague that "ZFS mis-uses the term COW" (Copy-On-Write). According to him, the original term was introduced by some vendors and was to be taken literally: that is, whenever a new write comes to update an existing logical block in the storage, the block's old contents are first copied away to another physical location (i.e. to be used for snapshotting or for recovery of untimely poweroff/panic), then the original on-disk location is rewritten with the new data.
Arguably, while this incurs a hit when rewriting existing data, this combats fragmentation and speeds up reads (i.e. all pieces of the file's "live" version are stored as contiguously as possible). This may be important for large objects randomly updated "inside", like VM disk images and iSCSI backing stores, precreated database table files, maybe swapfiles, etc. I understand why ZFS does what it does, and how, but it may be possible that such subtle differences in terminology may cause misunderstanding between people of the same trade. At least, I'd keep this possibility in mind when talking to non-Solaris storage admins ;) I wonder if this use of the term is indeed more valid (making a copy of old data upon a new write), and if any vendors actually did that procedure outlined above? Thanks, //Jim Klimov _______________________________________________ zfs-discuss mailing list email@example.com http://mail.opensolaris.org/mailman/listinfo/zfs-discuss