When overwriting a block which is check summed with a cryptographically secure hash function we can compare the old and new checksums for the block to determine if they differ (at almost no cost since we were going to do the checksums anyway). If they do not differ we don't actually need to do the write. This:
1) Reduces I/O
2) Reduces space usage, because if the old block is referenced by a snapshot we will need to keep both copies of the block around even though they contain the same data.
This functionality is only enabled if:
1) The old and new blocks are checksummed using the same algorithm.
2) That algorithm is cryptographically secure (e.g. sha256)
3) Compression is enabled on that block.
Updated by Christopher Siden almost 8 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
commit 80901aea8e78a2c20751f61f01bebd1d5b5c2ba5 Author: George Wilson <firstname.lastname@example.org> Date: Tue Nov 13 14:55:48 2012 -0800 3236 zio nop-write Reviewed by: Matt Ahrens <email@example.com> Reviewed by: Adam Leventhal <firstname.lastname@example.org> Reviewed by: Christopher Siden <email@example.com> Approved by: Garrett D'Amore <firstname.lastname@example.org>