4 ms·
> Considering the process is already reading and rewriting basically the entire array, why not recalculate the parity as well? Because snapshots might refer to
by magicalhippo 3y ago
> Considering the process is already reading and rewriting basically the entire array, why not recalculate the parity as well?
Because snapshots might refer to the old blocks. Sure you could recompute, but then any snapshots would mean those old blocks would have to stay around so now you've taken up ~twice the space.
- crote 3y agoOr you could just rewrite the snapshots while you are at it.
- magicalhippo 3y agoHow would you go about doing that? AFAIK in ZFS snapshots are just a pointer to (an old) merkle tree[1], if you go about changing the blocks then you need to update that tree, but you can't due to copy-on-write (without paying for the copy, like I mentioned). [1]: https://openzfs.readthedocs.io/en/latest/introduction.html#data-integrity https://openzfs.readthedocs.io/en/latest/introduction.html#d...