[feat](eval_performance): support filtered HGraph workloads in AutoTune - #2736
[feat](eval_performance): support filtered HGraph workloads in AutoTune#2736jac0626 wants to merge 1 commit into
Conversation
Signed-off-by: jc543239 <jc543239@antgroup.com> Assisted-by: Codex:gpt-5
|
/label status/waiting-for-review |
Merge Protections🟢 All 3 merge protections satisfied — ready to merge. Show 3 satisfied protections🟢 Require kind label
🟢 Require version label
🟢 Require linked issue for feature/bug PRs
|
There was a problem hiding this comment.
Pull request overview
This PR extends the eval_performance AutoTune typed API to support filtered HGraph workloads by accepting per-query FilterPtr or exclusion BitsetPtr inputs, routing them through the shared evaluation pipeline while keeping HGraph’s native filtered-search overloads, and documenting the new capability.
Changes:
- Extend typed AutoTune workload/request plumbing to carry per-query
FilterPtr/BitsetPtrintoEvalDataset, validation, and evaluation. - Update search evaluation to apply per-query filters/bitsets, and restrict filtered workloads to HGraph (including rejecting
use_extra_info_filter=true). - Add regression tests, new bitset example, and English/Chinese documentation updates.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/eval/eval_dataset.h | Adds per-query filter/bitset storage + accessors and filtered-query accounting. |
| tools/eval/eval_dataset.cpp | Validates filter/bitset inputs and wires them into dataset construction. |
| tools/eval/eval_dataset_test.cpp | Adds coverage for per-query filters/bitsets and input validation. |
| tools/eval/case/search_eval_case.cpp | Applies per-query filter/bitset during KNN evaluation via HGraph overloads. |
| tools/autotune/autotune.h | Extends Workload with query_filters and query_invalid_bitsets. |
| tools/autotune/autotune.cpp | Propagates filtered workload data into eval datasets; enforces HGraph-only for filtered cases; reports filtered count. |
| tools/autotune/autotune_internal.h | Tracks filtered-workload presence in request context. |
| tools/autotune/autotune_candidate.cpp | Rejects extra-info filtering when tuning filtered workloads. |
| tools/autotune/autotune_test.cpp | Adds end-to-end tuning tests for per-query filters/bitsets and validation failures. |
| examples/cpp/CMakeLists.txt | Registers a new bitset-based AutoTune example target. |
| examples/cpp/327_feature_autotune_existing_index.cpp | Extends existing example to demonstrate per-query FilterPtr tuning and usage. |
| examples/cpp/330_feature_autotune_existing_index_bitset.cpp | New example demonstrating per-query exclusion bitsets in AutoTune + final search. |
| docs/docs/zh/src/resources/autotune.md | Documents filtered typed HGraph workloads and links both examples (FilterPtr + bitset). |
| docs/docs/en/src/resources/autotune.md | Documents filtered typed HGraph workloads and links both examples (FilterPtr + bitset). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
/retest |
Change Type
Linked Issue
What Changed
FilterPtrand invalidBitsetPtrworkload inputs to typed HGraphTuneSearchandTuneIndexrequests.FilterPtrandBitsetPtrexamples, focused regression tests, and English/Chinese user documentation.Test Evidence
make fmtmake lintmake testmake cov, run tests, and collect coverageTest details:
Compatibility Impact
tools/; no installed VSAG SDK API is changed.Performance and Concurrency Impact
Documentation Impact
README.mdDEVELOPMENT.mdCONTRIBUTING.mddocs/docs/{en,zh}/src/resources/autotune.mdRisk and Rollback
92dfeaa4; unfiltered AutoTune behavior is otherwise unchanged.Checklist
kind/bugandkind/feature; see "Linked Issue" above)[skip ci]prefix)