vectordb-bench 0.0.30__py3-none-any.whl → 1.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. vectordb_bench/__init__.py +14 -27
  2. vectordb_bench/__main__.py +1 -1
  3. vectordb_bench/backend/assembler.py +19 -6
  4. vectordb_bench/backend/cases.py +186 -23
  5. vectordb_bench/backend/clients/__init__.py +16 -0
  6. vectordb_bench/backend/clients/api.py +22 -1
  7. vectordb_bench/backend/clients/aws_opensearch/aws_opensearch.py +82 -41
  8. vectordb_bench/backend/clients/aws_opensearch/config.py +37 -4
  9. vectordb_bench/backend/clients/chroma/chroma.py +6 -2
  10. vectordb_bench/backend/clients/elastic_cloud/config.py +31 -1
  11. vectordb_bench/backend/clients/elastic_cloud/elastic_cloud.py +133 -45
  12. vectordb_bench/backend/clients/milvus/config.py +1 -0
  13. vectordb_bench/backend/clients/milvus/milvus.py +75 -23
  14. vectordb_bench/backend/clients/oceanbase/cli.py +100 -0
  15. vectordb_bench/backend/clients/oceanbase/config.py +125 -0
  16. vectordb_bench/backend/clients/oceanbase/oceanbase.py +215 -0
  17. vectordb_bench/backend/clients/pinecone/pinecone.py +39 -25
  18. vectordb_bench/backend/clients/qdrant_cloud/config.py +73 -3
  19. vectordb_bench/backend/clients/qdrant_cloud/qdrant_cloud.py +100 -33
  20. vectordb_bench/backend/clients/zilliz_cloud/zilliz_cloud.py +1 -1
  21. vectordb_bench/backend/dataset.py +146 -27
  22. vectordb_bench/backend/filter.py +76 -0
  23. vectordb_bench/backend/runner/__init__.py +3 -3
  24. vectordb_bench/backend/runner/mp_runner.py +52 -39
  25. vectordb_bench/backend/runner/rate_runner.py +68 -52
  26. vectordb_bench/backend/runner/read_write_runner.py +125 -68
  27. vectordb_bench/backend/runner/serial_runner.py +56 -23
  28. vectordb_bench/backend/task_runner.py +59 -20
  29. vectordb_bench/cli/cli.py +59 -1
  30. vectordb_bench/cli/vectordbbench.py +3 -0
  31. vectordb_bench/frontend/components/check_results/data.py +16 -11
  32. vectordb_bench/frontend/components/check_results/filters.py +53 -25
  33. vectordb_bench/frontend/components/check_results/headerIcon.py +18 -13
  34. vectordb_bench/frontend/components/check_results/nav.py +20 -0
  35. vectordb_bench/frontend/components/custom/displayCustomCase.py +43 -8
  36. vectordb_bench/frontend/components/custom/displaypPrams.py +10 -5
  37. vectordb_bench/frontend/components/custom/getCustomConfig.py +10 -0
  38. vectordb_bench/frontend/components/label_filter/charts.py +60 -0
  39. vectordb_bench/frontend/components/run_test/caseSelector.py +48 -52
  40. vectordb_bench/frontend/components/run_test/dbSelector.py +9 -5
  41. vectordb_bench/frontend/components/run_test/inputWidget.py +48 -0
  42. vectordb_bench/frontend/components/run_test/submitTask.py +3 -1
  43. vectordb_bench/frontend/components/streaming/charts.py +253 -0
  44. vectordb_bench/frontend/components/streaming/data.py +62 -0
  45. vectordb_bench/frontend/components/tables/data.py +1 -1
  46. vectordb_bench/frontend/components/welcome/explainPrams.py +66 -0
  47. vectordb_bench/frontend/components/welcome/pagestyle.py +106 -0
  48. vectordb_bench/frontend/components/welcome/welcomePrams.py +147 -0
  49. vectordb_bench/frontend/config/dbCaseConfigs.py +309 -42
  50. vectordb_bench/frontend/config/styles.py +34 -4
  51. vectordb_bench/frontend/pages/concurrent.py +5 -1
  52. vectordb_bench/frontend/pages/custom.py +4 -0
  53. vectordb_bench/frontend/pages/label_filter.py +56 -0
  54. vectordb_bench/frontend/pages/quries_per_dollar.py +5 -1
  55. vectordb_bench/frontend/{vdb_benchmark.py → pages/results.py} +10 -4
  56. vectordb_bench/frontend/pages/run_test.py +3 -3
  57. vectordb_bench/frontend/pages/streaming.py +135 -0
  58. vectordb_bench/frontend/pages/tables.py +4 -0
  59. vectordb_bench/frontend/vdbbench.py +31 -0
  60. vectordb_bench/interface.py +8 -3
  61. vectordb_bench/metric.py +15 -1
  62. vectordb_bench/models.py +31 -11
  63. vectordb_bench/results/ElasticCloud/result_20250318_standard_elasticcloud.json +5890 -0
  64. vectordb_bench/results/Milvus/result_20250509_standard_milvus.json +6138 -0
  65. vectordb_bench/results/OpenSearch/result_20250224_standard_opensearch.json +7319 -0
  66. vectordb_bench/results/Pinecone/result_20250124_standard_pinecone.json +2365 -0
  67. vectordb_bench/results/QdrantCloud/result_20250602_standard_qdrantcloud.json +3556 -0
  68. vectordb_bench/results/ZillizCloud/result_20250613_standard_zillizcloud.json +6290 -0
  69. vectordb_bench/results/dbPrices.json +12 -4
  70. vectordb_bench/results/getLeaderboardDataV2.py +59 -0
  71. vectordb_bench/results/leaderboard_v2.json +2662 -0
  72. {vectordb_bench-0.0.30.dist-info → vectordb_bench-1.0.1.dist-info}/METADATA +93 -40
  73. {vectordb_bench-0.0.30.dist-info → vectordb_bench-1.0.1.dist-info}/RECORD +77 -58
  74. vectordb_bench/results/ZillizCloud/result_20230727_standard_zillizcloud.json +0 -791
  75. vectordb_bench/results/ZillizCloud/result_20230808_standard_zillizcloud.json +0 -679
  76. vectordb_bench/results/ZillizCloud/result_20240105_standard_202401_zillizcloud.json +0 -1352
  77. {vectordb_bench-0.0.30.dist-info → vectordb_bench-1.0.1.dist-info}/WHEEL +0 -0
  78. {vectordb_bench-0.0.30.dist-info → vectordb_bench-1.0.1.dist-info}/entry_points.txt +0 -0
  79. {vectordb_bench-0.0.30.dist-info → vectordb_bench-1.0.1.dist-info}/licenses/LICENSE +0 -0
  80. {vectordb_bench-0.0.30.dist-info → vectordb_bench-1.0.1.dist-info}/top_level.txt +0 -0
@@ -11,13 +11,16 @@
11
11
  "bus_crit": 32.6
12
12
  },
13
13
  "ElasticCloud": {
14
- "upTo2.5c8g": 0.4793
14
+ "upTo2.5c8g": 0.4793,
15
+ "8c60g": 1.26,
16
+ "8c60g-force_merge": 1.26
15
17
  },
16
18
  "QdrantCloud": {
17
19
  "0.5c4g-1node": 0.052,
18
20
  "2c8g-1node": 0.166,
19
21
  "4c16g-1node": 0.2852,
20
- "4c16g-5node": 1.426
22
+ "4c16g-5node": 1.426,
23
+ "16c64g": 1.14
21
24
  },
22
25
  "Pinecone": {
23
26
  "s1.x1": 0.0973,
@@ -26,7 +29,12 @@
26
29
  "p2.x1": 0.146,
27
30
  "p2.x1-8node": 1.168,
28
31
  "p1.x1-8node": 0.779,
29
- "s1.x1-2node": 0.195
32
+ "s1.x1-2node": 0.195,
33
+ "p2.x8-1node": 1.31
30
34
  },
31
- "PgVector": {}
35
+ "PgVector": {},
36
+ "OpenSearch": {
37
+ "16c128g": 1.418,
38
+ "16c128g-force_merge": 1.418
39
+ }
32
40
  }
@@ -0,0 +1,59 @@
1
+ import json
2
+ import logging
3
+
4
+
5
+ from vectordb_bench.backend.cases import CaseType
6
+ from vectordb_bench.backend.clients import DB
7
+ from vectordb_bench.models import CaseResult
8
+ from vectordb_bench import config
9
+
10
+ logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
11
+
12
+ from vectordb_bench.interface import BenchMarkRunner
13
+
14
+
15
+ def get_standard_2025_results() -> list[CaseResult]:
16
+ all_results = BenchMarkRunner.get_results()
17
+ standard_2025_case_results = []
18
+ for result in all_results:
19
+ if result.task_label == "standard_2025":
20
+ standard_2025_case_results += result.results
21
+ return standard_2025_case_results
22
+
23
+
24
+ def save_to_json(data: list[dict], file_name: str):
25
+ with open(file_name, "w") as f:
26
+ json.dump(data, f, indent=4)
27
+
28
+
29
+ def main():
30
+ standard_2025_case_results = get_standard_2025_results()
31
+ data = []
32
+ for case_result in standard_2025_case_results:
33
+ db = case_result.task_config.db
34
+ label = case_result.task_config.db_config.db_label
35
+ metrics = case_result.metrics
36
+ qps = metrics.qps
37
+ latency = metrics.serial_latency_p99
38
+ recall = metrics.recall
39
+ case = case_result.task_config.case_config.case
40
+ filter_ratio = case.filters.filter_rate
41
+ dataset = case.dataset.data.full_name
42
+ if case.case_id != CaseType.StreamingPerformanceCase:
43
+ data.append(
44
+ {
45
+ "dataset": dataset,
46
+ "db": db.value,
47
+ "label": label,
48
+ "db_name": f"{db.value}-{label}",
49
+ "qps": round(qps, 4),
50
+ "latency": round(latency, 4),
51
+ "recall": round(recall, 4),
52
+ "filter_ratio": round(filter_ratio, 2),
53
+ }
54
+ )
55
+ save_to_json(data, config.RESULTS_LOCAL_DIR / "leaderboard_v2.json")
56
+
57
+
58
+ if __name__ == "__main__":
59
+ main()