feat(uring): add benchmark and diagnostic foundations - #15
Merged
Merged
Conversation
Track rustfs/backlog#2647 steps 1.1, 1.2 and 1.4. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com>
Track rustfs/backlog#2647 step 1.3 with per-shard sampling, explicit timing boundaries and feature-off coverage. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com>
Track rustfs/backlog#2647 step 1.5 tooling. Formal target-hardware performance acceptance remains outstanding. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.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.
Read benchmark CSV headers were out of sync with their data, setup/teardown costs were mixed into workload timings, and driver-stage waits could not be separated. Add versioned benchmark output, explicit lifecycle/configuration fields, and opt-in per-shard sampled timing. The default driver compiles out the timing instrumentation.
Require positive O_DIRECT execution in CI. Add byte-exact coverage for all eight benchmark strategies and an ABBA runner that preserves artifacts and rejects drift, configuration changes, incomplete reports, and concurrent workloads. Document stage overlap and remaining target-hardware/application validation.
Tracking: rustfs/backlog#2647 (step 1.1–1.4 implementation, plus 1.5 evidence tooling; the optimization program remains open).
Validation: native Linux/x86_64 build, 4 timing unit tests + 19 cancel/correctness tests + 5 fault tests, strict O_DIRECT positive check, and release-mode CLI smoke with diagnostics off/on passed. Linux/aarch64 default/diagnostic correctness and paired seccomp-restricted degradation also passed. Linux check/Clippy/rustdoc, fmt, shellcheck, actionlint, and ABBA gate unit tests passed. Formal ABBA and actual LocalIoBackend/S3 performance are not yet accepted; no speedup is claimed.
Review covered measurement fairness, error behavior, ownership/task teardown, atomics and sampling distribution, restricted-host compatibility, test effectiveness, subprocess ownership/deadlines, and documentation consistency. Fixed sampling bias from global-ID modulo interacting with round-robin shards. Schema v2 requires positional CSV consumers to migrate.