------------------------------------------------------------------- Wed Jul 16 10:35:23 UTC 2025 - Gerald Chen - Update to 0.11: * Introduce *extent scan mode* that scans the extent tree directly. It is the new default scan mode. * Show estimated data size and expected time to finish scanning in logs and status outputs. * Smarter dedupe criteria that prevents dedupe operations that save less than half the blocks in an extent or require more than 100 copy/dedupe operations to free space. * Add the new dynamic rate throttling option `--throttle-factor` to estimate the rate at which the kernel deletes extents and slow down dedupe requests to match this rate. * Threads now dynamically redistribute their work so that they can make continuous progress without waiting for each other. * Remove excessively costly "toxic extent" workarounds yielding up to 100x–1000x speed boost on some workloads. * Coordinate between threads to prevent thrashing during disk reads. * Prefetche data into page-cache before dedupe calls. * Submit full-extent dedupe operations, avoiding obsolete 16M kernel limits. * Reduce the size of `ioctl` buffers, which avoids forcing the kernel to evict pages from memory to accommodate large buffers. * Limit reference counts for very frequently duplicated data, which avoids performance issues in btrfs (even when bees is not running). * Use the new `openat2` system call for improved robustness against rename and symlink attacks. * Use a private mount namespace for isolation even without `systemd`. * Recude warning and debug log verbosity. * `SIGUSR1` and `SIGUSR2` signals allow bees to be paused and unpaused without preventing bees from closing open files and subvols during the pause. * It is now safe to locate `$BEESHOME` on filesystems such as XFS that lack data flushing on `rename`. * Fix 32-bit `ioctl` compatibility for mixed 32/64-bit systems. * Detect a `btrfs send` in progress, and wait for it to complete automatically. `--workaround-btrfs-send` is no longer necessary when used with extent scan mode. ------------------------------------------------------------------- Thu Mar 7 15:05:28 UTC 2024 - Max Lin - Fix build fail with gcc7 on Leap 15 * Use gcc13 on compilation ------------------------------------------------------------------- Mon Jul 24 13:28:10 UTC 2023 - Frederic Crozat - Update to 0.10: * Update kernel bugs list to 6.4.1 * Update docs * Build fixes for GCC 13 and clang 16 - Drop avoid-swap.patch, no longer needed. ------------------------------------------------------------------- Tue Apr 4 06:59:34 UTC 2023 - Dirk Müller - update to 0.9.3: * roots: don't share a RootFetcher between threads * seeker: fix the test for ILP32 platforms * reduce memory usage with long-running work items * allow BtrfsIoctlLogicalInoArgs to be reused, remove virtual methods * create a Pool of BtrfsIoctlLogicalInoArgs objects - add avoid-swap.patch to fix build with gcc 13 ------------------------------------------------------------------- Sun Mar 12 23:52:54 UTC 2023 - Björn Bidar - Removed patch: fix-Makefile-version.diff, replaced with make parameter. ------------------------------------------------------------------- Tue Feb 14 07:27:50 UTC 2023 - Avinesh Kumar - update to 0.9.1: * Fix the install target. * Makefile: also drop fiemap and fiewalk from main Makefile - update to 0.9: - Highlights: * Work around a kernel bug which can be triggered by running the LOGICAL_INO ioctl and dedupe on the same extent at the same time. * Prevent worker threads from being blocked by extent and inode locks. Defer the blocked item and find something else for that worker thread to do. * Fix the labelling of threads so they aren't all "task_consumer". * Speed up SIGTERM process termination to have a better chance of flushing the hash table and crawl state to $BEESHOME before the process is killed by a service timeout. * Reduce the hash table writeback rate to 128K/s. * Reduce the interval between crawl restarts to one transid. * Add 'recent' scan mode, which dedupes new data in fully scanned subvols instead of waiting for every old subvol to be scanned. * Better behavior when there are write errors in $BEESHOME. * Drop the unused and obsolete `fiemap` and `fiewalk` binaries. ------------------------------------------------------------------- Mon Dec 5 12:42:19 UTC 2022 - Dirk Müller - update to 0.8: * fs: make dedupe work again after a really unfortunate build fix ------------------------------------------------------------------- Thu Oct 20 00:00:00 CEST 2022 - dsterba@suse.cz - update to 0.7 git 5953ea6d3c5646 (20221025) - build fixes - Removed patch: 0001-fs-fix-FIEMAP_MAX_OFFSET-type-silliness-in-fiemap.h.patch ------------------------------------------------------------------- Mon Sep 5 00:00:00 CEST 2022 - dsterba@suse.cz - Added patch: 0001-fs-fix-FIEMAP_MAX_OFFSET-type-silliness-in-fiemap.h.patch (fix build on ppc64le) ------------------------------------------------------------------- Wed Oct 6 00:00:00 CEST 2021 - dsterba@suse.cz - Update to 0.7 - Highlights: * Remove 8-CPU thread limit * Add kernel bugs reference table to docs * Workarounds for btrfs send and balance issues * Reduce the number of temporary inodes created * Use posix_fadvise to optimize page cache usage * Use private namespace for mounts under systemd * Assorted bug fixes and small performance improvements * SIGTERM handler to save crawl state, hash table, and exit * Higher ref limits per extent on kernels with LOGICAL_INO_V2 - Build dependency changes: * Convert docs to Github Flavored Markdown * Updates for new compilers including clang * Remove dependencies on libbtrfs-dev and uuid-dev * Remove unversioned `libcrucible.so` shared library ------------------------------------------------------------------- Thu May 13 00:00:00 CEST 2021 - dsterba@suse.cz - Update to 0.6.5 - Make clang builds work. - Update to 0.6.4 - Fix a bug that was causing bees to stop deduping. - spec: remove empty sections, unify make ------------------------------------------------------------------- Mon Sep 14 00:00:00 CEST 2020 - dsterba@suse.cz - initial import 0.6.3 Added patch: fix-Makefile-version.diff