Spaces:
Sleeping
Sleeping
from typing import List | |
import numpy as np | |
from chromadb.api import ServerAPI | |
from chromadb.api.models.Collection import Collection | |
def test_many_collections(api: ServerAPI) -> None: | |
"""Test that we can create a large number of collections and that the system | |
# remains responsive.""" | |
api.reset() | |
N = 10 | |
D = 10 | |
metadata = None | |
if api.get_settings().is_persistent: | |
metadata = {"hnsw:batch_size": 3, "hnsw:sync_threshold": 3} | |
else: | |
# We only want to test persistent configurations in this way, since the main | |
# point is to test the file handle limit | |
return | |
num_collections = 10000 | |
collections: List[Collection] = [] | |
for i in range(num_collections): | |
new_collection = api.create_collection( | |
f"test_collection_{i}", | |
metadata=metadata, | |
) | |
collections.append(new_collection) | |
# Add a few embeddings to each collection | |
data = np.random.rand(N, D).tolist() | |
ids = [f"test_id_{i}" for i in range(N)] | |
for i in range(num_collections): | |
collections[i].add(ids, data) | |