feat: bfb scroll sub-command#151
Merged
Merged
Conversation
1f4a991 to
d2d1d3e
Compare
bfb scroll; omit point count for phase-only commandsbfb scroll sub-command
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a dedicated bfb scroll subcommand so scroll workloads can be executed and reported independently against an already-existing collection, using a YAML config to describe scroll request “shapes” (collection + payload filters). This complements the existing flag-driven --scroll path while aligning scroll’s filter generation with the YAML-config-driven search path.
Changes:
- Introduces
bfb scroll --file …with a new YAML scroll config (src/config/scroll.rs) and CLI wiring (src/args/mod.rs,src/main.rs,src/query.rs). - Refactors YAML filter generation into a reusable
FilterGeneratorshared by YAML search and YAML scroll (src/generators/queries.rs). - Documents the new workflow and provides an example config (
README.md,examples/scroll-config.yaml).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/scroll.rs | Adds config-driven filter selection for scroll requests (new Filters source abstraction). |
| src/query.rs | Exposes scroll_with_config entrypoint for YAML-config-driven scroll. |
| src/main.rs | Wires the new scroll subcommand into the main dispatch and results output. |
| src/generators/queries.rs | Extracts/centralizes YAML payload filter generation into FilterGenerator and reuses it for search. |
| src/config/scroll.rs | Adds YAML schema/types + loader/validation for scroll configs (with tests). |
| src/config/mod.rs | Exposes the new config::scroll module. |
| src/args/mod.rs | Adds Command::Scroll and ScrollArgs { --file } for clap parsing. |
| README.md | Documents bfb scroll usage and output location under results.scroll. |
| examples/scroll-config.yaml | Provides a concrete scroll config example for users. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d2d1d3e to
4a2fa17
Compare
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
73dca2f to
442688a
Compare
generall
approved these changes
Jul 14, 2026
timvisee
approved these changes
Jul 14, 2026
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.
Scroll was only reachable as a
--scrollflag as a part of a full benchmark run, so timing it meant re-uploading first. This makes it a subcommand that runs against a collection that already exists:bfb scroll --file examples/scroll-config.yaml -n 50k -p 8 --json scroll.json. Results land underresults.scroll, same shape asresults.search. The YAML describes the shape of scroll requests — the collection, and the payload filters to scroll by. One template is picked at random per request with fresh filter values, so a single run can compare filtered against unfiltered:Filter entries use the same payload type / source vocabulary as the upload and search configs, because it's now literally the same code, with no change in behavior.
All Submissions:
devbranch. Did you create your branch fromdev?