milvus/tests/benchmark/test_loop.py

53 lines
1.9 KiB
Python
Raw Normal View History

import time
import random
import logging
from client import MilvusClient
import utils
if __name__ == "__main__":
milvus_instance = MilvusClient()
milvus_instance.clean_db()
p_num = 1
dimension = 128
insert_xb = 100000
index_types = ['flat']
index_param = {"nlist": 2048}
collection_names = []
milvus_instances_map = {}
insert_vectors = [[random.random() for _ in range(dimension)] for _ in range(insert_xb)]
for i in range(collection_num):
name = utils.get_unique_name(prefix="collection_")
print(name)
collection_names.append(name)
metric_type = "ip"
# metric_type = random.choice(["l2", "ip"])
index_file_size = random.randint(10, 100)
milvus_instance.create_collection(name, dimension, index_file_size, metric_type)
milvus_instance = MilvusClient(collection_name=name)
index_type = random.choice(index_types)
milvus_instance.create_index(index_type, index_param=index_param)
insert_vectors = utils.normalize(metric_type, insert_vectors)
milvus_instance.insert(insert_vectors)
milvus_instance.flush()
milvus_instances_map.update({name: milvus_instance})
print(milvus_instance.describe_index(), milvus_instance.describe(), milvus_instance.count())
# tasks = ["insert_rand", "delete_rand", "query_rand", "flush", "compact"]
tasks = ["insert_rand", "query_rand", "flush"]
i = 1
while True:
print("Loop time: %d" % i)
start_time = time.time()
while time.time() - start_time < pull_interval_seconds:
# choose collection
tmp_collection_name = random.choice(collection_names)
# choose task from task
task_name = random.choice(tasks)
# print(tmp_collection_name, task_name)
func = getattr(milvus_instances_map[tmp_collection_name], task_name)
func()
print("Restart")
i = i + 1