Skip to content

feat: add support for Alibaba Cloud AnalyticDB for PostgreSQL Nova#786

Merged
XuanYang-cn merged 1 commit into
zilliztech:mainfrom
softhuafei:nova_pr
Jul 2, 2026
Merged

feat: add support for Alibaba Cloud AnalyticDB for PostgreSQL Nova#786
XuanYang-cn merged 1 commit into
zilliztech:mainfrom
softhuafei:nova_pr

Conversation

@softhuafei

Copy link
Copy Markdown
Contributor

Summary

Adds a new client adbpgnova for Alibaba Cloud AnalyticDB for PostgreSQL (ADB-PG), which supports the Nova vector index
family (novamr / novad) backed by the fastann engine and USING ann syntax.

What's added

  • Client implementation: vectordb_bench/backend/clients/adbpg/{adbpg.py,config.py,cli.py}
  • CLI command: vectordbbench adbpgnova ...
  • Frontend integration: db case configs + style entry, so the new client shows up in the Streamlit UI
  • Unit tests: tests/test_adbpg.py — 9 tests covering config defaults, to_dict connection options, index_param WITH-clause options (incl. raw auto_reduction=on), session_param
    GUC emission, and TestResult.read_file round-trip
  • README: a new "Run ADBPG (Aliyun AnalyticDB for PostgreSQL) from command line" section with examples

Algorithms supported

Algorithm Build params Search GUCs
novamr (default) hnsw_m, ef_construction, rabitq_bits, auto_reduction fastann.hnsw_ef_search, fastann.hnsw_max_scan_points, fastann.quantize_rescore_amp, fastann.nova_adaptive_gamma
novad nlist, rabitq_bits fastann.nova_nprobe (exposed as --nprobe)

Example

vectordbbench adbpgnova --case-type Performance768D1M --k 10 \
  --host <host> --port 5432 --db-name postgres \
  --user-name <user> --password <pwd> \
  --algorithm novamr --hnsw-m 48 --ef-construction 600 \
  --ef-search 50 --max-scan-points 16000 --quantize-rescore-amp 0.6 \
  --auto-reduction --num-concurrency 48

Or via YAML:

vectordbbench adbpgnova --config-file adbpg_cohere1m_novamr.yml

Test plan

  • make lint (black + ruff) passes locally
  • pytest tests/test_adbpg.py — 9/9 passing
  • End-to-end runs against a live ADB-PG cluster for both algorithms (no-filter and 1%-filter cases)
  • Streamlit Results page renders the saved JSON correctly

@softhuafei

Copy link
Copy Markdown
Contributor Author

/assign @XuanYang-cn

@softhuafei

Copy link
Copy Markdown
Contributor Author

can you please review @sre-ci-robot @jkatz @javiervegas @claude

@swhhy

swhhy commented Jun 8, 2026

Copy link
Copy Markdown

Hi @XuanYang-cn, this PR is ready for review. All CI checks (lint + unittest) pass locally. Would appreciate your review when you have a moment. Thanks!
/assign @XuanYang-cn 😀

@softhuafei softhuafei force-pushed the nova_pr branch 3 times, most recently from 90b3485 to dd51f10 Compare June 16, 2026 03:48
Comment thread vectordb_bench/frontend/config/dbCaseConfigs.py Outdated
@XuanYang-cn

Copy link
Copy Markdown
Collaborator

@softhuafei Please also resolve the conflicts.

@softhuafei

Copy link
Copy Markdown
Contributor Author

@softhuafei Please also resolve the conflicts.
Hi @XuanYang-cn, thanks for the review. Addressed both blocking items:

Algorithm dropdown — vectordb_bench/frontend/config/dbCaseConfigs.py: options were ["novamr", "novam"], fixed to ["novamr", "novad"]. The backend (adbpg/config.py) only supports novamr and novad; novam was a typo that would let the UI submit an unsupported algorithm. Also fixed a related index-name comment in adbpg.py (novam_index → novamr_index).
Merge conflicts — rebased onto the latest main (linear history). The only conflict was in CASE_CONFIG_MAP, where both this branch and main appended an entry; both DB.Adbpg and the new DB.TurboPuffer are kept.
Could you take another look? Thanks!

@sre-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: softhuafei, XuanYang-cn

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

The pull request process is described 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

@XuanYang-cn XuanYang-cn merged commit 129c113 into zilliztech:main Jul 2, 2026
4 checks passed
@swhhy swhhy deleted the nova_pr branch July 6, 2026 12:28
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