On Fri, May 13, 2016 at 11:44:40AM +0800, Qu Wenruo wrote: > Although maybe out of your expectation, inband de-dedupe did exposed some > existing bugs we didn't ever found before. > And they are all reproducible without inband dedupe. > > Some examples: > [...] > 3) Slow backref walk. > Already in the comment of backref.c from ancient days, but we didn't > put much concern until inband dedupe/heavily reflink work load.
Out-of-band dedup definitely hits that. Most blocks are duplicated only a few times, but a few common blocks are _really_ common. I have some filesystems where some extents have a few tens of thousands of references by dedup, then a dozen snapshots are created to increase the ref count by another order of magnitude. 'btrfs ins logical' takes hours to run on these blocks--assuming the host doesn't run out of RAM and crash before giving an answer. Try doing a balance on a filesystem where some extents have a million+ references on a machine with 2G of RAM. I _dare_ you. It would be nice to get the bug fixes in sooner, whether or not the upper layers of the in-band dedup feature are ready.
signature.asc
Description: Digital signature