[OmniOS-discuss] ZFS Dedup

Chris Siebenmann cks at cs.toronto.edu
Thu May 3 15:24:27 UTC 2018


> - while you can enable on a filesystem level it operates on pool
> level. once activated you cannot disable beside a pool destroy.

 As far as I can tell from having looked at the code in the past,
dedup is effectively inactive as soon as all data written while
dedup was enabled has been removed.

 To simplify slightly: data blocks written while dedup was active are
specially flagged. Even if dedup has been turned off, you have to check
and update the DDT when you delete these flagged blocks in order to
properly maintain its reference counts. However, once all flagged data
blocks have been deleted, your DDT is empty and there are no further
effects. Of course deleting all these data blocks may be a problem,
especially in the face of things like snapshots, but once you have,
you're done.

(There is always a DDT in pools; it's just that some or much of the
time it's empty.)

	- cks


More information about the OmniOS-discuss mailing list