README: bring up to date with v1.4.0/v1.5.0, fix a stale benchmark figure - #151
Merged
Conversation
…gure The README was last substantively updated in #118, two releases ago, so it was missing everything shipped since and carried one number that no longer matched the benchmark doc. Fix a wrong figure: the path-hash row claimed "41 vs 73 MiB on the benchmark tree". Neither number appears in docs/benchmarks.md, which measures 39.7 vs 70.9 MiB -- and that figure comes from the larger-than-RAM tree, not the 2.07M-file tree the surrounding table describes. Correct both the numbers and the attribution, and reword the table intro, which named only one of the two benchmarks the rows actually draw from. Add the missing user-facing work: - paths beyond PATH_MAX are hashed and deduped (#117/#124/#128) - the streaming dedupe pipeline (#116), which had no bullet at all - the O(extents^2) fragmented-file scan fix (#134) - the two dedupe-phase races (#123, #129) - clang ASAN/UBSAN/TSAN CI legs, warnings-as-errors, make check-all - --cpu-threads, absent from both CLI lists despite being in --help - progress polish: scan-phase throughput (#120), idle workers (#143) Tighten for readability: drop the standalone larger-than-RAM NOTE, which stated the same ~13x claim a third time; its unique content (RSS, hashfile size) moves into the speedups table where the reader is already comparing figures. Mark upstream issue references as "upstream #NNN" throughout -- bare markfasheh#331/markfasheh#374/markfasheh#376/markfasheh#387 now read as oans issues, since oans has its own numbers in that range. Docs-only; no code touched. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The README was last substantively updated in #118, two releases ago. It was
missing everything shipped since, and carried one figure that no longer matched
docs/benchmarks.md.One factual error
The path-hash-index row claimed a smaller hashfile of "41 vs 73 MiB on the
benchmark tree". Neither number appears anywhere in
docs/benchmarks.md, whichmeasures 39.7 vs 70.9 MiB — and that measurement comes from the
larger-than-RAM tree, not the 2.07M-file / ~230 GiB tree the surrounding table
describes. Both the numbers and the attribution are corrected.
The table intro had the same problem in miniature: it said "benchmarked on real
btrfs data (2.07M files, ~230 GiB)" while several rows draw from the other
benchmark. It now names both trees up front.
Missing since v1.3.0
Each verified present in the tree, not taken from a commit title:
PATH_MAXare hashed and deduped rather than skipped (Actually hash & dedupe files whose absolute path exceeds PATH_MAX (follow-up to #108) #117, Hash & dedupe files whose absolute path exceeds PATH_MAX (#117) #124, Fix the flaky partial-mode UAF (#123), plus three PATH_MAX leftovers #128)make check-all— the CI bullet mentioned only valgrind--cpu-threads, absent from both CLI lists despite being in--helpand the man pageConsistency and readability
[!NOTE]. The same ~13× claim appearedthree times (Why-oans table, that note, "vs upstream duperemove"); its unique
content — peak RSS and hashfile size — is now a row in the speedups table,
where the reader is already comparing figures.
upstream #NNNthroughout. Bare#331,#374,#376,#387now read as oans issues, since oans has its own numbersin that range. Matches the style already used for
#396/#407.Checks
All nine internal links resolve; the
#larger-than-ram-dedupeand#what-the-fork-changesanchors match real headings; and the headline numbers(~11 min → ~92 s, ~294 → ~188 s, 13.8 vs 179.7 s) were each checked against
docs/benchmarks.md.I did not run
scripts/verify.sh: the diff is markdown-only and touches nocode, so the build/test/valgrind gate has nothing to exercise. Say the word if
you'd rather it ran anyway.
Left alone deliberately, as they look intentional rather than stale: the Debian
dep list omitting
libatomic(added for Fedora 41 in #82;build-essentialcovers it on Debian), and "Requires Linux 3.13+".
🤖 Generated with Claude Code