A deeper dive into the technical details of ZFS dedup. It's not as simple as "one MB of disk, one KB of RAM", even though that is possibly a decent heuristic for some data:
> According to the ZFS dedup FAQ, each entry in the dedup table costs about 320 Bytes of memory per block. To estimate the size of the dedup table, we need to know how many blocks ZFS will need to store our data. This question can be tricky: ZFS uses a variable block size between 512 bytes and 128K, depending on the size of the files it stores. So we can't really know in advance how many blocks ZFS will use for storing our data.
It *depends*! Not again!
https://constantin.glez.de/2011/07/27/zfs-to-dedupe-or-not-dedupe/
/via https://superuser.com/questions/521646/view-zfs-deduplication-ratio-on-a-dataset#521782
It looks to me from my guix_nix experiment that ZFS doesn't deduplicate across datasets in the same pool. But these sources say actually it does. I will have to experiment further.