mirror_zfs/tests/zfs-tests
Rob Norris a1902f4950 ddt: block scan until log is flushed, and flush aggressively
The dedup log does not have a stable cursor, so its not possible to
persist our current scan location within it across pool reloads.
Beccause of this, when walking (scanning), we can't treat it like just
another source of dedup entries.

Instead, when a scan is wanted, we switch to an aggressive flushing
mode, pushing out entries older than the scan start txg as fast as we
can, before starting the scan proper.

Entries after the scan start txg will be handled via other methods; the
DDT ZAPs and logs will be written as normal, and blocks not seen yet
will be offered to the scan machinery as normal.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Co-authored-by: Allan Jude <allan@klarasystems.com>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Sponsored-by: Klara, Inc.
Sponsored-by: iXsystems, Inc.
Closes #15895
2024-08-16 12:03:43 -07:00
..
callbacks Split functional testings via github action matrix 2023-03-15 10:41:05 -07:00
cmd ZTS: small fix for SEEK_DATA/SEEK_HOLE tests (#16413) 2024-08-07 09:52:37 -07:00
include ddt: dedup log 2024-08-16 12:03:35 -07:00
tests ddt: block scan until log is flushed, and flush aggressively 2024-08-16 12:03:43 -07:00
.gitignore autoconf: use include directives instead of recursing down cmd 2022-05-10 10:18:38 -07:00
Makefile.am tests: add test for vdev_disk page alignment check 2024-04-11 14:42:46 -07:00