You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up bench from PR #1228 review (item 1 in coverage gaps). The query planner's weighted-width gate (memory: mem:fact-01kmt5bw0782hg138vkahvnha3) and fused star-path selection (memory: mem:fact-01kmt9rs6m9d4rxt2ges55teq1) drove ~176×–933× perf wins recently. A regression in analyze_property_join_plan would not be caught by query_hot_bsbm unless the wins were end-to-end-visible — by which point the regression has already shipped to production.
Scope
Add fluree-db-api/benches/query_hot_property_join.rs (or a more focused location under fluree-db-query/benches/ if the bench can avoid the full Fluree stack) covering the analyze_property_join_plan decision boundary. Specifically:
Inputs that fall on either side of the weighted-width thresholds (2.0 / 3.0 / 4.0). The bench should construct datasets that deterministically produce widths just below and just above each threshold so a regression that flips the gate's decision is detectable.
A scenario per gate output: "wide-row property-join chosen", "fused star-path chosen", "fallback nested-loop chosen". Whatever the planner emits today is the baseline; the bench locks it in.
Use the chassis pattern.fluree_bench_support::gen::* for datasets; bench_runtime() / current_profile() / current_scale() for env-driven sizing; next_ledger_alias() for unique aliases per iteration. Register a budget in regression-budget.json for (crate, query_hot_property_join).
Acceptance
Bench compiles and runs --test green at tiny scale.
regression-budget.json has an entry under the appropriate crate.
BENCHMARKING.md's "Current benches" table gets a row.
If the bench introduces a new category, add a row to docs/contributing/benches.md.
Bench-gate CI job picks it up via the existing cargo bench --workspace -- --test step.
This is a targeted regression bench, not a planner correctness suite. Correctness is owned by the existing integration tests; this bench locks in the perf decisions only.
Context
Follow-up bench from PR #1228 review (item 1 in coverage gaps). The query planner's weighted-width gate (memory:
mem:fact-01kmt5bw0782hg138vkahvnha3) and fused star-path selection (memory:mem:fact-01kmt9rs6m9d4rxt2ges55teq1) drove ~176×–933× perf wins recently. A regression inanalyze_property_join_planwould not be caught byquery_hot_bsbmunless the wins were end-to-end-visible — by which point the regression has already shipped to production.Scope
Add
fluree-db-api/benches/query_hot_property_join.rs(or a more focused location underfluree-db-query/benches/if the bench can avoid the full Fluree stack) covering theanalyze_property_join_plandecision boundary. Specifically:fluree_bench_support::gen::*for datasets;bench_runtime()/current_profile()/current_scale()for env-driven sizing;next_ledger_alias()for unique aliases per iteration. Register a budget inregression-budget.jsonfor(crate, query_hot_property_join).Acceptance
--testgreen attinyscale.regression-budget.jsonhas an entry under the appropriate crate.BENCHMARKING.md's "Current benches" table gets a row.docs/contributing/benches.md.cargo bench --workspace -- --teststep.References
pr-1228-review.mdin repo or comment thread): coverage gap#1.mem:fact-01kmt5bw0782hg138vkahvnha3(planner weighted-width gate),mem:fact-01kmt9rs6m9d4rxt2ges55teq1(fused star-path selection).BENCHMARKING.md,docs/contributing/benches.md,fluree-bench-support/README.md.Out of scope
This is a targeted regression bench, not a planner correctness suite. Correctness is owned by the existing integration tests; this bench locks in the perf decisions only.