feat: Add VectorDBBench Cloud Leaderboard benchmark cases and client support#775
Conversation
e258154 to
f909086
Compare
…h-case # Conflicts: # vectordb_bench/backend/clients/milvus/milvus.py # vectordb_bench/backend/clients/turbopuffer/turbopuffer.py # vectordb_bench/backend/dataset.py # vectordb_bench/backend/runner/serial_runner.py
f909086 to
c943513
Compare
XuanYang-cn
left a comment
There was a problem hiding this comment.
Requesting changes. I left the blocking findings inline.
XuanYang-cn
left a comment
There was a problem hiding this comment.
I found one additional required issue in the result read/write path.
These existing unresolved review threads still apply on the current head and should remain blockers: scalar-label payload loads with separated scalar_labels.parquet, Pinecone multitenant partial-insert accounting, cloud insert readiness polling without a timeout, and TurboPuffer --dry-run --pin-namespace mutating remote state before dry-run handling.
XuanYang-cn
left a comment
There was a problem hiding this comment.
I found two blocking issues that can still produce invalid Cloud Leaderboard measurements: scalar-label cases can reuse a collection loaded without scalar labels, and TurboPuffer multitenant optimize warms the base namespace instead of the tenant namespaces.
XuanYang-cn
left a comment
There was a problem hiding this comment.
Reviewed head a949875. I found blocking issues in the cloud benchmark state handling: multitenant case reuse can run against the wrong tenant layout, non-retryable partial insert failures do not stop the remaining insert workers, and Pinecone multitenant readiness counts are racy under concurrent insert.
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: jamesgao-jpg, XuanYang-cn The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Summary
This PR adds the VectorDBBench Cloud Leaderboard benchmark surface. The goal is to complement the existing raw-performance leaderboard with cloud-oriented cases that capture production behaviors managed vector database users care about: ingest readiness, payload-aware search, tenant-shaped traffic, cold latency, and cost-aware interpretation.
What is added
New Cloud Leaderboard cases
CloudPayloadSearchCase: measures search performance with explicit response payload profiles:ids_only,scalar_label, andvector. It supports unfiltered search, integer-filter search, and scalar-label filter search.CloudInsertCase: measures insert throughput and separates client insert completion from downstream readiness signals such as fully searchable and fully indexed.CloudColdLatencyCase: measures cold and warm serial latency so first-query and cache-sensitive serving behavior are visible instead of hidden by warm concurrent loops.CloudMultiTenantSearchCase: models SaaS-style tenant-routed workloads with deterministic tenant assignment and tenant-aware query routing.Runtime and metric plumbing
Client support
CLI, frontend, and docs
docs/release/2026-05-cloud-leaderboard.md.README.mdto mention the new Cloud Leaderboard benchmark cases and link to the release note.Notes
Test Plan
.venv/bin/python -m pytest tests/test_cloud_payload_search.py tests/test_cloud_payload_case.py tests/test_cloud_insert_case.py tests/test_cloud_cold_latency_case.py tests/test_multitenant_case.py tests/test_pinecone_multitenant.py tests/test_milvus.py -q -k 'not test_performance_1536d_50k'.venv/bin/python -m ruff check vectordb_bench/backend/clients/api.py vectordb_bench/backend/clients/turbopuffer/turbopuffer.py vectordb_bench/backend/runner/concurrent_runner.py vectordb_bench/cli/cli.py