Skip to content

feat: Add YDB support to the benchmark#791

Open
zinal wants to merge 2 commits into
zilliztech:mainfrom
zinal:add-ydb-support
Open

feat: Add YDB support to the benchmark#791
zinal wants to merge 2 commits into
zilliztech:mainfrom
zinal:add-ydb-support

Conversation

@zinal

@zinal zinal commented May 31, 2026

Copy link
Copy Markdown

YDB is a distributed SQL database which supports vector search, including the exact and indexed (approximate) search.

This PR adds basic support for YDB to the VectorDBBench code.

Fixes #792

Notes for maintainers

Adding a YDB client requires small, opt-in extensions to shared benchmark infrastructure. The goal is to support gRPC-based clients and case-specific index DDL without changing behavior for existing databases.

All changes follow the same pattern already used for thread_safe in concurrent_runner.py: boolean capability flags on VectorDB, checked via getattr(..., False). No database-specific if db == DB.X branches remain in shared runners.

YDB uses a gRPC driver and builds vector_kmeans_tree indexes after data load. Index DDL depends on the case filter type. That creates three practical constraints:

  1. Subprocess + pickle — the YDB driver/session pool cannot be pickled when ProcessPoolExecutor forks or spawns a child process.
  2. Filters at init time — index shape must be known when optimize() runs, not only during search.
  3. Per-case table names — same requirement as for Doris: avoid cross-case interference when running multiple benchmarks against one cluster.

These are client-specific needs, not general benchmark changes.

@sre-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

@zinal zinal changed the title Add YDB support to the benchmark feat: Add YDB support to the benchmark May 31, 2026
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.

Add support for YDB as a benchmark target database

2 participants