Repository navigation
ci(bench): fsync the copied file fixture before measuring (#426) - #481
Merged
Merged
Conversation
populate_file copies a prebuilt fixture (#393) but never synced the copy, so its dirty pages were still being written back while insert_file measured. Every WAL fsync waited on that writeback: the 1m copy made insert_file/*/1m 3-10x slower on about half the nightly runs since 2026-09-27, with 100k and smaller unaffected. Not a library regression: 84bf375 -> ab65350 changed no src/ file. Refs #426 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GgLEs8YozJjYhwPEYgTUn
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
adityamukho
added a commit
that referenced
this pull request
Oct 8, 2026
Merge main into v3 (#481 bench fixture fsync)
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.
Summary
insert_file/*/1mhas been 3–10x slower on about half the nightly runs since 2026-09-27 (#426). This is caused by the bench harness, not by a regression in the library.populate_filecopy a prebuilt fixture instead of rebuilding it.std::fs::copydoes not fsync, so the copy's dirty pages (several hundred MB at 1m) were still being written back during measurement. Each WAL fsync waited on that writeback.populate_file, which runs in setup and is not timed.Evidence
single_fact,batch_100andexplicit_txwere slow at 1m (for example 1.04 ms vs 231 µs at 100k) while 100k and smaller were normal. In the two months before ci(bench): regression alerts have been muted since #301; fix alerting and noisy thresholds #393, 1m and 100k matched.src/file relative to the last fast run, 84bf375.v3has the same helper, so it gets the fix whenmainis next merged into it.Test plan
cargo bench --no-run,cargo clippy --all-features -- -D warnings,cargo fmt --checkRefs #426
🤖 Generated with Claude Code
https://claude.ai/code/session_015GgLEs8YozJjYhwPEYgTUn