Skip to content

feat: add ivf_pq support to milvus - #846

Open
FantasqueX wants to merge 1 commit into
zilliztech:mainfrom
FantasqueX:ivf-pq-1
Open

feat: add ivf_pq support to milvus#846
FantasqueX wants to merge 1 commit into
zilliztech:mainfrom
FantasqueX:ivf-pq-1

Conversation

@FantasqueX

@FantasqueX FantasqueX commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

I don't see similar tests around so not add tests. If you want, I can add them.

@sre-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: FantasqueX
To complete the pull request process, please assign xuanyang-cn after the PR has been reviewed.
You can assign the PR to them by writing /assign @xuanyang-cn in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

db=DBTYPE,
db_config=_build_milvus_config(parameters),
db_case_config=_with_partition_key(
IVFPQConfig(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vectordb_bench/backend/clients/milvus/cli.py line:369
Low ---- This adds a new user-facing command and manually maps seven IVF_PQ/refine options into the Milvus config, but no test exercises this path. The repository already has tests/test_milvus_zilliz_cli.py with a CliRunner/captured-run seam; please add a case there that invokes MilvusIVFPQ and asserts both the index and search payloads, so option-name/default regressions do not silently change the benchmark request.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added a test case.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue is confirmed fixed.

Signed-off-by: Letu Ren <letur@nvidia.com>

@jamesgao-jpg jamesgao-jpg left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One benchmark-default compatibility issue found.

IndexType.HNSW_PQ.value,
IndexType.HNSW_PRQ.value,
IndexType.IVF_RABITQ.value,
IndexType.IVFPQ.value,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Preserve the existing non-refined IVF_PQ default

CaseConfigParamInput_Refine uses options: [True, False], and inputWidget passes those options to st.selectbox without an explicit index, so True is selected by default. Adding IVFPQ here therefore enables FP32 refinement for an untouched frontend IVF_PQ run even though IVFPQConfig defines refine=False and the previous frontend behavior was non-refined. This silently changes the benchmark workload and makes default results incomparable. Please give IVF_PQ a selector that defaults to False without changing the existing HNSW/IVF_RABITQ defaults, and add a focused frontend-default regression test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants