Skip to content

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

Open
softhuafei wants to merge 1 commit into
zilliztech:mainfrom
softhuafei:nova_pr
Open

feat: add support for Alibaba Cloud AnalyticDB for PostgreSQL Nova#786
softhuafei wants to merge 1 commit into
zilliztech:mainfrom
softhuafei:nova_pr

Conversation

@softhuafei
Copy link
Copy Markdown

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

@sre-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: softhuafei
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

@softhuafei
Copy link
Copy Markdown
Author

/assign @XuanYang-cn

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.

2 participants