vectordb-bench 0.0.28__py3-none-any.whl → 0.0.29__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.
- vectordb_bench/__init__.py +3 -1
- vectordb_bench/backend/clients/clickhouse/cli.py +1 -0
- vectordb_bench/backend/clients/clickhouse/clickhouse.py +3 -3
- vectordb_bench/backend/clients/clickhouse/config.py +2 -2
- vectordb_bench/backend/clients/lancedb/lancedb.py +8 -2
- vectordb_bench/backend/clients/qdrant_cloud/cli.py +43 -0
- vectordb_bench/backend/clients/qdrant_cloud/config.py +4 -4
- vectordb_bench/backend/runner/mp_runner.py +16 -5
- vectordb_bench/backend/task_runner.py +1 -0
- vectordb_bench/cli/cli.py +13 -2
- vectordb_bench/cli/vectordbbench.py +2 -0
- vectordb_bench/frontend/components/run_test/dbConfigSetting.py +10 -4
- vectordb_bench/models.py +6 -0
- {vectordb_bench-0.0.28.dist-info → vectordb_bench-0.0.29.dist-info}/METADATA +9 -4
- {vectordb_bench-0.0.28.dist-info → vectordb_bench-0.0.29.dist-info}/RECORD +19 -18
- {vectordb_bench-0.0.28.dist-info → vectordb_bench-0.0.29.dist-info}/WHEEL +1 -1
- {vectordb_bench-0.0.28.dist-info → vectordb_bench-0.0.29.dist-info}/entry_points.txt +0 -0
- {vectordb_bench-0.0.28.dist-info → vectordb_bench-0.0.29.dist-info}/licenses/LICENSE +0 -0
- {vectordb_bench-0.0.28.dist-info → vectordb_bench-0.0.29.dist-info}/top_level.txt +0 -0
vectordb_bench/__init__.py
CHANGED
@@ -6,7 +6,7 @@ import environs
|
|
6
6
|
from . import log_util
|
7
7
|
|
8
8
|
env = environs.Env()
|
9
|
-
env.read_env(".env", False)
|
9
|
+
env.read_env(path=".env", recurse=False)
|
10
10
|
|
11
11
|
|
12
12
|
class config:
|
@@ -52,6 +52,8 @@ class config:
|
|
52
52
|
|
53
53
|
CONCURRENCY_DURATION = 30
|
54
54
|
|
55
|
+
CONCURRENCY_TIMEOUT = 3600
|
56
|
+
|
55
57
|
RESULTS_LOCAL_DIR = env.path(
|
56
58
|
"RESULTS_LOCAL_DIR",
|
57
59
|
pathlib.Path(__file__).parent.joinpath("results"),
|
@@ -51,6 +51,7 @@ def Clickhouse(**parameters: Unpack[ClickhouseHNSWTypedDict]):
|
|
51
51
|
db=DB.Clickhouse,
|
52
52
|
db_config=ClickhouseConfig(
|
53
53
|
db_label=parameters["db_label"],
|
54
|
+
user=parameters["user"],
|
54
55
|
password=SecretStr(parameters["password"]) if parameters["password"] else None,
|
55
56
|
host=parameters["host"],
|
56
57
|
port=parameters["port"],
|
@@ -106,7 +106,7 @@ class Clickhouse(VectorDB):
|
|
106
106
|
query = f"""
|
107
107
|
ALTER TABLE {self.db_config["database"]}.{self.table_name}
|
108
108
|
ADD INDEX {self._index_name} {self._vector_field}
|
109
|
-
TYPE vector_similarity('hnsw', '{self.index_param["metric_type"]}',
|
109
|
+
TYPE vector_similarity('hnsw', '{self.index_param["metric_type"]}',{self.dim},
|
110
110
|
'{self.index_param["quantization"]}',
|
111
111
|
{self.index_param["params"]["M"]}, {self.index_param["params"]["efConstruction"]})
|
112
112
|
GRANULARITY {self.index_param["granularity"]}
|
@@ -115,7 +115,7 @@ class Clickhouse(VectorDB):
|
|
115
115
|
query = f"""
|
116
116
|
ALTER TABLE {self.db_config["database"]}.{self.table_name}
|
117
117
|
ADD INDEX {self._index_name} {self._vector_field}
|
118
|
-
TYPE vector_similarity('hnsw', '{self.index_param["metric_type"]}')
|
118
|
+
TYPE vector_similarity('hnsw', '{self.index_param["metric_type"]}', {self.dim})
|
119
119
|
GRANULARITY {self.index_param["granularity"]}
|
120
120
|
"""
|
121
121
|
self.conn.command(cmd=query)
|
@@ -186,7 +186,7 @@ class Clickhouse(VectorDB):
|
|
186
186
|
"vector_field": self._vector_field,
|
187
187
|
"schema": self.db_config["database"],
|
188
188
|
"table": self.table_name,
|
189
|
-
"gt": filters.get("id"),
|
189
|
+
"gt": 0 if filters is None else filters.get("id", 0),
|
190
190
|
"k": k,
|
191
191
|
"metric_type": self.search_param["metric_type"],
|
192
192
|
"query": query,
|
@@ -16,7 +16,7 @@ class ClickhouseConfigDict(TypedDict):
|
|
16
16
|
|
17
17
|
|
18
18
|
class ClickhouseConfig(DBConfig):
|
19
|
-
|
19
|
+
user: str = "clickhouse"
|
20
20
|
password: SecretStr
|
21
21
|
host: str = "localhost"
|
22
22
|
port: int = 8123
|
@@ -29,7 +29,7 @@ class ClickhouseConfig(DBConfig):
|
|
29
29
|
"host": self.host,
|
30
30
|
"port": self.port,
|
31
31
|
"database": self.db_name,
|
32
|
-
"user": self.
|
32
|
+
"user": self.user,
|
33
33
|
"password": pwd_str,
|
34
34
|
"secure": self.secure,
|
35
35
|
}
|
@@ -77,9 +77,15 @@ class LanceDB(VectorDB):
|
|
77
77
|
filters: dict | None = None,
|
78
78
|
) -> list[int]:
|
79
79
|
if filters:
|
80
|
-
results =
|
80
|
+
results = (
|
81
|
+
self.table.search(query)
|
82
|
+
.select(["id"])
|
83
|
+
.where(f"id >= {filters['id']}", prefilter=True)
|
84
|
+
.limit(k)
|
85
|
+
.to_list()
|
86
|
+
)
|
81
87
|
else:
|
82
|
-
results = self.table.search(query).limit(k).to_list()
|
88
|
+
results = self.table.search(query).select(["id"]).limit(k).to_list()
|
83
89
|
return [int(result["id"]) for result in results]
|
84
90
|
|
85
91
|
def optimize(self, data_size: int | None = None):
|
@@ -0,0 +1,43 @@
|
|
1
|
+
from typing import Annotated, Unpack
|
2
|
+
|
3
|
+
import click
|
4
|
+
from pydantic import SecretStr
|
5
|
+
|
6
|
+
from ....cli.cli import (
|
7
|
+
CommonTypedDict,
|
8
|
+
cli,
|
9
|
+
click_parameter_decorators_from_typed_dict,
|
10
|
+
run,
|
11
|
+
)
|
12
|
+
from .. import DB
|
13
|
+
|
14
|
+
|
15
|
+
class QdrantTypedDict(CommonTypedDict):
|
16
|
+
url: Annotated[
|
17
|
+
str,
|
18
|
+
click.option("--url", type=str, help="URL connection string", required=True),
|
19
|
+
]
|
20
|
+
api_key: Annotated[
|
21
|
+
str | None,
|
22
|
+
click.option("--api-key", type=str, help="API key for authentication", required=False),
|
23
|
+
]
|
24
|
+
|
25
|
+
|
26
|
+
@cli.command()
|
27
|
+
@click_parameter_decorators_from_typed_dict(QdrantTypedDict)
|
28
|
+
def QdrantCloud(**parameters: Unpack[QdrantTypedDict]):
|
29
|
+
from .config import QdrantConfig, QdrantIndexConfig
|
30
|
+
|
31
|
+
config_params = {
|
32
|
+
"db_label": parameters["db_label"],
|
33
|
+
"url": SecretStr(parameters["url"]),
|
34
|
+
}
|
35
|
+
|
36
|
+
config_params["api_key"] = SecretStr(parameters["api_key"]) if parameters["api_key"] else None
|
37
|
+
|
38
|
+
run(
|
39
|
+
db=DB.QdrantCloud,
|
40
|
+
db_config=QdrantConfig(**config_params),
|
41
|
+
db_case_config=QdrantIndexConfig(),
|
42
|
+
**parameters,
|
43
|
+
)
|
@@ -6,14 +6,14 @@ from ..api import DBCaseConfig, DBConfig, MetricType
|
|
6
6
|
# Allowing `api_key` to be left empty, to ensure compatibility with the open-source Qdrant.
|
7
7
|
class QdrantConfig(DBConfig):
|
8
8
|
url: SecretStr
|
9
|
-
api_key: SecretStr
|
9
|
+
api_key: SecretStr | None = None
|
10
10
|
|
11
11
|
def to_dict(self) -> dict:
|
12
|
-
|
13
|
-
if
|
12
|
+
api_key_value = self.api_key.get_secret_value() if self.api_key else None
|
13
|
+
if api_key_value:
|
14
14
|
return {
|
15
15
|
"url": self.url.get_secret_value(),
|
16
|
-
"api_key":
|
16
|
+
"api_key": api_key_value,
|
17
17
|
"prefer_grpc": True,
|
18
18
|
}
|
19
19
|
return {
|
@@ -5,10 +5,12 @@ import random
|
|
5
5
|
import time
|
6
6
|
import traceback
|
7
7
|
from collections.abc import Iterable
|
8
|
+
from multiprocessing.queues import Queue
|
8
9
|
|
9
10
|
import numpy as np
|
10
11
|
|
11
12
|
from ... import config
|
13
|
+
from ...models import ConcurrencySlotTimeoutError
|
12
14
|
from ..clients import api
|
13
15
|
|
14
16
|
NUM_PER_BATCH = config.NUM_PER_BATCH
|
@@ -28,16 +30,18 @@ class MultiProcessingSearchRunner:
|
|
28
30
|
self,
|
29
31
|
db: api.VectorDB,
|
30
32
|
test_data: list[list[float]],
|
31
|
-
k: int =
|
33
|
+
k: int = config.K_DEFAULT,
|
32
34
|
filters: dict | None = None,
|
33
35
|
concurrencies: Iterable[int] = config.NUM_CONCURRENCY,
|
34
|
-
duration: int =
|
36
|
+
duration: int = config.CONCURRENCY_DURATION,
|
37
|
+
concurrency_timeout: int = config.CONCURRENCY_TIMEOUT,
|
35
38
|
):
|
36
39
|
self.db = db
|
37
40
|
self.k = k
|
38
41
|
self.filters = filters
|
39
42
|
self.concurrencies = concurrencies
|
40
43
|
self.duration = duration
|
44
|
+
self.concurrency_timeout = concurrency_timeout
|
41
45
|
|
42
46
|
self.test_data = test_data
|
43
47
|
log.debug(f"test dataset columns: {len(test_data)}")
|
@@ -114,9 +118,7 @@ class MultiProcessingSearchRunner:
|
|
114
118
|
log.info(f"Start search {self.duration}s in concurrency {conc}, filters: {self.filters}")
|
115
119
|
future_iter = [executor.submit(self.search, self.test_data, q, cond) for i in range(conc)]
|
116
120
|
# Sync all processes
|
117
|
-
|
118
|
-
sleep_t = conc if conc < 10 else 10
|
119
|
-
time.sleep(sleep_t)
|
121
|
+
self._wait_for_queue_fill(q, size=conc)
|
120
122
|
|
121
123
|
with cond:
|
122
124
|
cond.notify_all()
|
@@ -160,6 +162,15 @@ class MultiProcessingSearchRunner:
|
|
160
162
|
conc_latency_avg_list,
|
161
163
|
)
|
162
164
|
|
165
|
+
def _wait_for_queue_fill(self, q: Queue, size: int):
|
166
|
+
wait_t = 0
|
167
|
+
while q.qsize() < size:
|
168
|
+
sleep_t = size if size < 10 else 10
|
169
|
+
wait_t += sleep_t
|
170
|
+
if wait_t > self.concurrency_timeout > 0:
|
171
|
+
raise ConcurrencySlotTimeoutError
|
172
|
+
time.sleep(sleep_t)
|
173
|
+
|
163
174
|
def run(self) -> float:
|
164
175
|
"""
|
165
176
|
Returns:
|
@@ -275,6 +275,7 @@ class CaseRunner(BaseModel):
|
|
275
275
|
filters=self.ca.filters,
|
276
276
|
concurrencies=self.config.case_config.concurrency_search_config.num_concurrency,
|
277
277
|
duration=self.config.case_config.concurrency_search_config.concurrency_duration,
|
278
|
+
concurrency_timeout=self.config.case_config.concurrency_search_config.concurrency_timeout,
|
278
279
|
k=self.config.case_config.k,
|
279
280
|
)
|
280
281
|
|
vectordb_bench/cli/cli.py
CHANGED
@@ -17,10 +17,9 @@ from typing import (
|
|
17
17
|
import click
|
18
18
|
from yaml import load
|
19
19
|
|
20
|
-
from vectordb_bench.backend.clients.api import MetricType
|
21
|
-
|
22
20
|
from .. import config
|
23
21
|
from ..backend.clients import DB
|
22
|
+
from ..backend.clients.api import MetricType
|
24
23
|
from ..interface import benchmark_runner, global_result_future
|
25
24
|
from ..models import (
|
26
25
|
CaseConfig,
|
@@ -303,6 +302,17 @@ class CommonTypedDict(TypedDict):
|
|
303
302
|
callback=lambda *args: list(map(int, click_arg_split(*args))),
|
304
303
|
),
|
305
304
|
]
|
305
|
+
concurrency_timeout: Annotated[
|
306
|
+
int,
|
307
|
+
click.option(
|
308
|
+
"--concurrency-timeout",
|
309
|
+
type=int,
|
310
|
+
default=config.CONCURRENCY_TIMEOUT,
|
311
|
+
show_default=True,
|
312
|
+
help="Timeout (in seconds) to wait for a concurrency slot before failing. "
|
313
|
+
"Set to a negative value to wait indefinitely.",
|
314
|
+
),
|
315
|
+
]
|
306
316
|
custom_case_name: Annotated[
|
307
317
|
str,
|
308
318
|
click.option(
|
@@ -490,6 +500,7 @@ def run(
|
|
490
500
|
concurrency_search_config=ConcurrencySearchConfig(
|
491
501
|
concurrency_duration=parameters["concurrency_duration"],
|
492
502
|
num_concurrency=[int(s) for s in parameters["num_concurrency"]],
|
503
|
+
concurrency_timeout=parameters["concurrency_timeout"],
|
493
504
|
),
|
494
505
|
custom_case=get_custom_case_config(parameters),
|
495
506
|
),
|
@@ -9,6 +9,7 @@ from ..backend.clients.pgdiskann.cli import PgDiskAnn
|
|
9
9
|
from ..backend.clients.pgvecto_rs.cli import PgVectoRSHNSW, PgVectoRSIVFFlat
|
10
10
|
from ..backend.clients.pgvector.cli import PgVectorHNSW
|
11
11
|
from ..backend.clients.pgvectorscale.cli import PgVectorScaleDiskAnn
|
12
|
+
from ..backend.clients.qdrant_cloud.cli import QdrantCloud
|
12
13
|
from ..backend.clients.redis.cli import Redis
|
13
14
|
from ..backend.clients.test.cli import Test
|
14
15
|
from ..backend.clients.tidb.cli import TiDB
|
@@ -35,6 +36,7 @@ cli.add_command(TiDB)
|
|
35
36
|
cli.add_command(Clickhouse)
|
36
37
|
cli.add_command(Vespa)
|
37
38
|
cli.add_command(LanceDB)
|
39
|
+
cli.add_command(QdrantCloud)
|
38
40
|
|
39
41
|
|
40
42
|
if __name__ == "__main__":
|
@@ -36,21 +36,27 @@ def dbConfigSettingItem(st, activeDb: DB):
|
|
36
36
|
columns = st.columns(DB_CONFIG_SETTING_COLUMNS)
|
37
37
|
|
38
38
|
dbConfigClass = activeDb.config_cls
|
39
|
-
|
39
|
+
schema = dbConfigClass.schema()
|
40
|
+
property_items = schema.get("properties").items()
|
41
|
+
required_fields = set(schema.get("required", []))
|
40
42
|
dbConfig = {}
|
41
43
|
idx = 0
|
42
44
|
|
43
45
|
# db config (unique)
|
44
|
-
for key, property in
|
46
|
+
for key, property in property_items:
|
45
47
|
if key not in dbConfigClass.common_short_configs() and key not in dbConfigClass.common_long_configs():
|
46
48
|
column = columns[idx % DB_CONFIG_SETTING_COLUMNS]
|
47
49
|
idx += 1
|
48
|
-
|
50
|
+
input_value = column.text_input(
|
49
51
|
key,
|
50
|
-
key="
|
52
|
+
key=f"{activeDb.name}-{key}",
|
51
53
|
value=property.get("default", ""),
|
52
54
|
type="password" if inputIsPassword(key) else "default",
|
55
|
+
placeholder="optional" if key not in required_fields else None,
|
53
56
|
)
|
57
|
+
if key in required_fields or input_value:
|
58
|
+
dbConfig[key] = input_value
|
59
|
+
|
54
60
|
# db config (common short labels)
|
55
61
|
for key in dbConfigClass.common_short_configs():
|
56
62
|
column = columns[idx % DB_CONFIG_SETTING_COLUMNS]
|
vectordb_bench/models.py
CHANGED
@@ -30,6 +30,11 @@ class PerformanceTimeoutError(TimeoutError):
|
|
30
30
|
super().__init__("Performance case optimize timeout")
|
31
31
|
|
32
32
|
|
33
|
+
class ConcurrencySlotTimeoutError(TimeoutError):
|
34
|
+
def __init__(self):
|
35
|
+
super().__init__("Timeout while waiting for a concurrency slot to become available")
|
36
|
+
|
37
|
+
|
33
38
|
class CaseConfigParamType(Enum):
|
34
39
|
"""
|
35
40
|
Value will be the key of CaseConfig.params and displayed in UI
|
@@ -113,6 +118,7 @@ class CustomizedCase(BaseModel):
|
|
113
118
|
class ConcurrencySearchConfig(BaseModel):
|
114
119
|
num_concurrency: list[int] = config.NUM_CONCURRENCY
|
115
120
|
concurrency_duration: int = config.CONCURRENCY_DURATION
|
121
|
+
concurrency_timeout: int = config.CONCURRENCY_TIMEOUT
|
116
122
|
|
117
123
|
|
118
124
|
class CaseConfig(BaseModel):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: vectordb-bench
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.29
|
4
4
|
Summary: VectorDBBench is not just an offering of benchmark results for mainstream vector databases and cloud services, it's your go-to tool for the ultimate performance and cost-effectiveness comparison. Designed with ease-of-use in mind, VectorDBBench is devised to help users, even non-professionals, reproduce results or test new systems, making the hunt for the optimal choice amongst a plethora of cloud services and open-source vector databases a breeze.
|
5
5
|
Author-email: XuanYang-cn <xuan.yang@zilliz.com>
|
6
6
|
Project-URL: repository, https://github.com/zilliztech/VectorDBBench
|
@@ -92,13 +92,13 @@ Provides-Extra: lancedb
|
|
92
92
|
Requires-Dist: lancedb; extra == "lancedb"
|
93
93
|
Dynamic: license-file
|
94
94
|
|
95
|
-
# VectorDBBench: A Benchmark Tool for VectorDB
|
95
|
+
# VectorDBBench(VDBBench): A Benchmark Tool for VectorDB
|
96
96
|
|
97
97
|
[](https://pypi.org/project/vectordb-bench/)
|
98
98
|
[](https://pepy.tech/project/vectordb-bench)
|
99
99
|
|
100
100
|
## What is VectorDBBench
|
101
|
-
VectorDBBench is not just an offering of benchmark results for mainstream vector databases and cloud services, it's your go-to tool for the ultimate performance and cost-effectiveness comparison. Designed with ease-of-use in mind, VectorDBBench is devised to help users, even non-professionals, reproduce results or test new systems, making the hunt for the optimal choice amongst a plethora of cloud services and open-source vector databases a breeze.
|
101
|
+
VectorDBBench(VDBBench) is not just an offering of benchmark results for mainstream vector databases and cloud services, it's your go-to tool for the ultimate performance and cost-effectiveness comparison. Designed with ease-of-use in mind, VectorDBBench is devised to help users, even non-professionals, reproduce results or test new systems, making the hunt for the optimal choice amongst a plethora of cloud services and open-source vector databases a breeze.
|
102
102
|
|
103
103
|
Understanding the importance of user experience, we provide an intuitive visual interface. This not only empowers users to initiate benchmarks at ease, but also to view comparative result reports, thereby reproducing benchmark results effortlessly.
|
104
104
|
To add more relevance and practicality, we provide cost-effectiveness reports particularly for cloud services. This allows for a more realistic and applicable benchmarking process.
|
@@ -208,6 +208,10 @@ Options:
|
|
208
208
|
--num-concurrency TEXT Comma-separated list of concurrency values
|
209
209
|
to test during concurrent search [default:
|
210
210
|
1,10,20]
|
211
|
+
--concurrency-timeout INTEGER Timeout (in seconds) to wait for a
|
212
|
+
concurrency slot before failing. Set to a
|
213
|
+
negative value to wait indefinitely.
|
214
|
+
[default: 3600]
|
211
215
|
--user-name TEXT Db username [required]
|
212
216
|
--password TEXT Db password [required]
|
213
217
|
--host TEXT Db host [required]
|
@@ -294,7 +298,8 @@ Options:
|
|
294
298
|
# Memory Management
|
295
299
|
--cb-threshold TEXT k-NN Memory circuit breaker threshold
|
296
300
|
|
297
|
-
--help Show this message and exit
|
301
|
+
--help Show this message and exit.
|
302
|
+
```
|
298
303
|
|
299
304
|
#### Using a configuration file.
|
300
305
|
|
@@ -1,17 +1,17 @@
|
|
1
|
-
vectordb_bench/__init__.py,sha256=
|
1
|
+
vectordb_bench/__init__.py,sha256=PBGSIdgzof6UMeWbgjFUjTRgUcbu0Tg5njbGo0oU88g,2420
|
2
2
|
vectordb_bench/__main__.py,sha256=cyYbVSU-zA1AgzneGKcRRuzR4ftRDr9sIi9Ei9NZnhI,858
|
3
3
|
vectordb_bench/base.py,sha256=AgavIF0P9ku_RmCRk1KKziba-wI4ZpA2aJvjJzNhRSs,129
|
4
4
|
vectordb_bench/interface.py,sha256=XaCjTgUeI17uVjsgOauPeVlkvnkuCyQOWyOaWhrgCt8,9811
|
5
5
|
vectordb_bench/log_util.py,sha256=wDNaU_JBBOfKi_Z4vq7LDa0kOlLjoNNzDX3VZQn_Dxo,3239
|
6
6
|
vectordb_bench/metric.py,sha256=pj-AxQHyIRHTaJY-wTIkTbC6TqEqMzt3kcEmMWEv71w,2063
|
7
|
-
vectordb_bench/models.py,sha256=
|
7
|
+
vectordb_bench/models.py,sha256=b-DaUopaf6qwuuEbl9wAHKZjuosmOi6gpebYz6iWvBU,12221
|
8
8
|
vectordb_bench/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
vectordb_bench/backend/assembler.py,sha256=6GInRT7yBgfTaIPmo-XMkYX4pA8PJQmjMQInynwaunE,2047
|
10
10
|
vectordb_bench/backend/cases.py,sha256=obDdY6g3p9Z2fog7qDwLLDuRMwo3LGQKMHsP66QZd2M,16296
|
11
11
|
vectordb_bench/backend/data_source.py,sha256=bfa_Zg4O9fRP2ENmVZ_2-NISKozoFN-TocyxOlw1JtE,5524
|
12
12
|
vectordb_bench/backend/dataset.py,sha256=lH2Q01AEJxA-sYfZHzH2BM019mwuy9mB_i0VLhIgDJ8,9020
|
13
13
|
vectordb_bench/backend/result_collector.py,sha256=mpROVdZ-HChKBVyMV5TZ5v7YGRb69bvfT7Gezn5F5sY,819
|
14
|
-
vectordb_bench/backend/task_runner.py,sha256=
|
14
|
+
vectordb_bench/backend/task_runner.py,sha256=HYZ5B9-qOKAKmrsk-nwVhmXEddf451o4P3xQuSiCTt8,11595
|
15
15
|
vectordb_bench/backend/utils.py,sha256=R6THuJdZhiQYSSJTqv0Uegl2B20taV_QjwvFrun2yxE,1949
|
16
16
|
vectordb_bench/backend/clients/__init__.py,sha256=4P4Y7qOIYBJqJENsfMNzD5L0C651ypcPr05M1-ph0LU,10549
|
17
17
|
vectordb_bench/backend/clients/api.py,sha256=3AfO-EPNzosaIBfYX3U9HeOMO7Uw0muOZ0x4cqqSH34,6534
|
@@ -28,14 +28,14 @@ vectordb_bench/backend/clients/aws_opensearch/config.py,sha256=9meXQUOVFlk3UOAhv
|
|
28
28
|
vectordb_bench/backend/clients/aws_opensearch/run.py,sha256=Ry5aAlielWjq0hx7LnbdShfOwzZhz3Gq9WYu5U43x9s,5001
|
29
29
|
vectordb_bench/backend/clients/chroma/chroma.py,sha256=Aqo6AlSWd0TG0SR4cr9AEoLzXtOJ5VNhbIucHnm8NxY,3619
|
30
30
|
vectordb_bench/backend/clients/chroma/config.py,sha256=8nXpPdecQ5HrNqcsQwAVgacSz6uLgI-BI7v4tB8CeDk,347
|
31
|
-
vectordb_bench/backend/clients/clickhouse/cli.py,sha256=
|
32
|
-
vectordb_bench/backend/clients/clickhouse/clickhouse.py,sha256=
|
33
|
-
vectordb_bench/backend/clients/clickhouse/config.py,sha256
|
31
|
+
vectordb_bench/backend/clients/clickhouse/cli.py,sha256=6I0AwUOrqfjQbN_3aSTJHUYE-PAAMAQ4AIZC_8GqoEw,2054
|
32
|
+
vectordb_bench/backend/clients/clickhouse/clickhouse.py,sha256=1i-64mzluloJ3fXT7J3_HXzkUtJ4re7HwuRwiqtGOck,8956
|
33
|
+
vectordb_bench/backend/clients/clickhouse/config.py,sha256=-waHUHrT9WwuSNjHYE7T5j8s8RTsHNTDFuzmqT4nQWI,2649
|
34
34
|
vectordb_bench/backend/clients/elastic_cloud/config.py,sha256=_5Cz3__CbMU7zCizkhK1pGhH3TLJacn8efVueUZ0lnQ,1573
|
35
35
|
vectordb_bench/backend/clients/elastic_cloud/elastic_cloud.py,sha256=FSslLDH2Yi9ZdUwaCbKC_IXxFbMvW-L1xB3YMU08MVI,5448
|
36
36
|
vectordb_bench/backend/clients/lancedb/cli.py,sha256=j5eqb-_CSWF1rdxAj2Byut6albHEj0JF51wCruaJsu8,2688
|
37
37
|
vectordb_bench/backend/clients/lancedb/config.py,sha256=Udd39FrYmIa9ZztmfAC0BLj0rBaPv3yd9XaF5VkCziU,2950
|
38
|
-
vectordb_bench/backend/clients/lancedb/lancedb.py,sha256=
|
38
|
+
vectordb_bench/backend/clients/lancedb/lancedb.py,sha256=9hFHtj_Ry44nVY1vX9FSnB_WAL6ih86Rx2qFiZgEkX0,3148
|
39
39
|
vectordb_bench/backend/clients/mariadb/cli.py,sha256=nqV9V-gOSKGQ1y6VmxOMxGz0a3jz860Va55x7JBcuPk,2727
|
40
40
|
vectordb_bench/backend/clients/mariadb/config.py,sha256=DNxo0i1c0wIfii78Luv9GeOFq-74yvkkg3Np9sNUyFI,1870
|
41
41
|
vectordb_bench/backend/clients/mariadb/mariadb.py,sha256=O2PY7pP3dYdp-aTOQLDVckdNabCZscw5Xup7Z8LnWIg,7137
|
@@ -61,7 +61,8 @@ vectordb_bench/backend/clients/pgvectorscale/config.py,sha256=ZMcRQPyCMzMJLXw56z
|
|
61
61
|
vectordb_bench/backend/clients/pgvectorscale/pgvectorscale.py,sha256=NONFdcE-b-mt6GsRTru6UbMMu8iqX8PfRF43fY_AODw,10136
|
62
62
|
vectordb_bench/backend/clients/pinecone/config.py,sha256=hzPX1lxDpYI9IdpNs7RYB1vAn2uMlCw9NH4FonQEmfQ,294
|
63
63
|
vectordb_bench/backend/clients/pinecone/pinecone.py,sha256=SeJ-XnuIZxFDYhgO8FlRNYN65lPXDW2HEQuu5s5Na5Q,3591
|
64
|
-
vectordb_bench/backend/clients/qdrant_cloud/
|
64
|
+
vectordb_bench/backend/clients/qdrant_cloud/cli.py,sha256=QoJ8t76mJmXrj-VJYn6-Atc1EryFhAApvtWUxei0wuo,1095
|
65
|
+
vectordb_bench/backend/clients/qdrant_cloud/config.py,sha256=UWFctRQ03suEyASlbSg76dEi0s58tp5ERE-d5A9LuLg,1098
|
65
66
|
vectordb_bench/backend/clients/qdrant_cloud/qdrant_cloud.py,sha256=VvE96WlEqbXCytwUGxLGt8AbuRvu1psF1weydb8MW_4,5431
|
66
67
|
vectordb_bench/backend/clients/redis/cli.py,sha256=tFLXzNyvh_GYUZihqMvj65C5vBKPVVAYIXtbzGaVCcU,2167
|
67
68
|
vectordb_bench/backend/clients/redis/config.py,sha256=xVSVC6xjjAKsiwJuJoLguCGhiiUT9w13Db_Up5ZqljY,1241
|
@@ -83,14 +84,14 @@ vectordb_bench/backend/clients/zilliz_cloud/cli.py,sha256=3_eD3ZG-FeTw1cenhbBFni
|
|
83
84
|
vectordb_bench/backend/clients/zilliz_cloud/config.py,sha256=-Qb50m-Hcz86OcMURU21n61Rz-RpFqKfUsmjna85OR8,909
|
84
85
|
vectordb_bench/backend/clients/zilliz_cloud/zilliz_cloud.py,sha256=B9EUDmK11oQ2GIslVkbRVAitHT-NbRGxQD_Weia-vhY,681
|
85
86
|
vectordb_bench/backend/runner/__init__.py,sha256=mF8YnErTa7MVG37zZb0KFXBSrmMw_afttuiqWcwrVls,228
|
86
|
-
vectordb_bench/backend/runner/mp_runner.py,sha256=
|
87
|
+
vectordb_bench/backend/runner/mp_runner.py,sha256=n8IiRs7JUJGQVXwGlVMdvcpotikF9VsjXGFHMMylsS0,10119
|
87
88
|
vectordb_bench/backend/runner/rate_runner.py,sha256=2coO7qalEh6ZbVKUkyFvip4JWjs1yJM-iiExSrjEp9c,4306
|
88
89
|
vectordb_bench/backend/runner/read_write_runner.py,sha256=CXYBXEEkS1S7-NurdzN5Wh6N0Vx-rprM9Qehk1WKwl8,7822
|
89
90
|
vectordb_bench/backend/runner/serial_runner.py,sha256=Y4Y2mSK8nU3hml7gliiF6BXUaW49sD-Ueci0xn62IL0,10290
|
90
91
|
vectordb_bench/backend/runner/util.py,sha256=tjTFUxth6hNnVrlU82TqkHhfeZo4ymj7WlyK4zFyPTg,522
|
91
92
|
vectordb_bench/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
92
|
-
vectordb_bench/cli/cli.py,sha256=
|
93
|
-
vectordb_bench/cli/vectordbbench.py,sha256=
|
93
|
+
vectordb_bench/cli/cli.py,sha256=1bZzK7uCwAi9ILtvlZiFAAMwJfwQec1HF3RRSpbqxKY,16000
|
94
|
+
vectordb_bench/cli/vectordbbench.py,sha256=EA0x0vKDGIszAKstbnDtJz26U6_Wnl11W07PDukLNzo,1604
|
94
95
|
vectordb_bench/config-files/sample_config.yml,sha256=yw9ZgHczNi9PedNuTVxZKiOTI6AVoQS1h8INNgoDjPk,340
|
95
96
|
vectordb_bench/custom/custom_case.json,sha256=uKo7NJgXDPPLtf_V6y1uc5w1aIcjLp-GCJEYOCty1As,475
|
96
97
|
vectordb_bench/frontend/utils.py,sha256=8eb4I9F0cQdnPQiFX0gMEk1e2fdgultgTKzzY5zS0Q0,489
|
@@ -112,7 +113,7 @@ vectordb_bench/frontend/components/custom/initStyle.py,sha256=ortsoUNqH-vVq9ECiw
|
|
112
113
|
vectordb_bench/frontend/components/get_results/saveAsImage.py,sha256=POaFiwKoCGqrY-zhanWC7-tubE64bV_JjqI4lgIuMts,1459
|
113
114
|
vectordb_bench/frontend/components/run_test/autoRefresh.py,sha256=mjIa43VQQmNjYPkEbOtKNlJ1UfGPcqRKvc2Jh4kx8U0,289
|
114
115
|
vectordb_bench/frontend/components/run_test/caseSelector.py,sha256=ea3u-NDtCX32Au9YkfqGA8mhF6K_Av9HZvp0Mem3C0o,5328
|
115
|
-
vectordb_bench/frontend/components/run_test/dbConfigSetting.py,sha256=
|
116
|
+
vectordb_bench/frontend/components/run_test/dbConfigSetting.py,sha256=k0tGoJokTVvI3zofArNxH9NYUu9Hzo1uyobbZ_h9HfM,2895
|
116
117
|
vectordb_bench/frontend/components/run_test/dbSelector.py,sha256=hzMEIL1DzvpP8xkL6JhELTdcml0ysC70Gw-WLr8vW9A,1123
|
117
118
|
vectordb_bench/frontend/components/run_test/generateTasks.py,sha256=3y8NHtWJMNqoP2SvoWuR7kj84g0OEg68IULebimzz7E,741
|
118
119
|
vectordb_bench/frontend/components/run_test/hideSidebar.py,sha256=vb5kzIMmbMqWX67qFEHek21X4sGO_tPyn_uPqUEtp3Q,234
|
@@ -145,9 +146,9 @@ vectordb_bench/results/WeaviateCloud/result_20230808_standard_weaviatecloud.json
|
|
145
146
|
vectordb_bench/results/ZillizCloud/result_20230727_standard_zillizcloud.json,sha256=-Mdm4By65XDRCrmVOCF8yQXjcZtH4Xo4shcjoDoBUKU,18293
|
146
147
|
vectordb_bench/results/ZillizCloud/result_20230808_standard_zillizcloud.json,sha256=77XlHT5zM_K7mG5HfDQKwXZnSCuR37VUbt6-P3J_amI,15737
|
147
148
|
vectordb_bench/results/ZillizCloud/result_20240105_standard_202401_zillizcloud.json,sha256=TualfJ0664Hs-vdIW68bdkqAEYyzotXmu2P0yIN-GHk,42526
|
148
|
-
vectordb_bench-0.0.
|
149
|
-
vectordb_bench-0.0.
|
150
|
-
vectordb_bench-0.0.
|
151
|
-
vectordb_bench-0.0.
|
152
|
-
vectordb_bench-0.0.
|
153
|
-
vectordb_bench-0.0.
|
149
|
+
vectordb_bench-0.0.29.dist-info/licenses/LICENSE,sha256=HXbxhrb5u5SegVzeLNF_voVgRsJMavcLaOmD1N0lZkM,1067
|
150
|
+
vectordb_bench-0.0.29.dist-info/METADATA,sha256=8ekrKUsItuE-dEvCBGOk1ktXNF19qSw8Qat9FRGG-o8,38448
|
151
|
+
vectordb_bench-0.0.29.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
152
|
+
vectordb_bench-0.0.29.dist-info/entry_points.txt,sha256=Qzw6gVx96ui8esG21H6yHsI6nboEohRmV424TYhQNrA,113
|
153
|
+
vectordb_bench-0.0.29.dist-info/top_level.txt,sha256=jnhZFZAuKX1J60yt-XOeBZ__ctiZMvoC_s0RFq29lpM,15
|
154
|
+
vectordb_bench-0.0.29.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|