
Vdtuner est testé sur un serveur configuré avec CentOS 7.9.2009 (Linux 5.5.0) et Python 3.11. Le système de gestion de la base de données vectorielle évalué et Benchamark sont Mivlus (version 2.3.1) et Vector-DB-Benchmark.
Voir la préimpression à http://arxiv.org/abs/2404.10413
docker-compose.yml (fichier de démarrage de milvus), milvus.yaml (fichier de configuration milvus pour l'utilisation) et milvus.yaml.backup (fichier de configuration de milvus pour copier et modifier) dans votre benchmark path vector-db-benchmark-master/engine/servers/milvus-single-node .run_engine.sh modifié sur vector-db-benchmark-master/run_engine.sh .vector-db-benchmark-master et exécutez: sudo ./run_engine.sh "" "" random-100 . vector-db-benchmark-master/datasets/glove-100-angular/glove-100-angular.hdf5 . Modifiez le fichier vector-db-benchmark-master/experiments/configurations/milvus-single-node.json à une configuration d'index defualt comme suit. Le paramètre parallel peut être modifié en fonction des spécifications de votre serveur.
[
{
"name" : " milvus-p10 " ,
"engine" : " milvus " ,
"connection_params" : {},
"collection_params" : {},
"search_params" : [
{
"parallel" : 10 ,
"params" : {}
}
],
"upload_params" : {
"parallel" : 10 ,
"index_type" : " AUTOINDEX " ,
"index_params" : {}
}
}
] Spécifiez votre ensemble de données et votre limite de délai d'expiration. Dans le fichier auto-configure/vdtuner/utils.py (ligne 117), supposons que nous testons le gant de l'ensemble de données, avec un maximum de 15 minutes pour chaque rediffusion de charge de travail:
result = sp . run ( f'sudo timeout 900 { RUN_ENGINE_PATH } "" "" glove-100-angular' , shell = True , stdout = sp . PIPE ) Pour exécuter Vdtuner, vous devez spécifier le fichier de configuration des paramètres de réglage et du chemin de référence. Voici un exemple.
Dans le fichier auto-configure/configure.py , ligne 4-9:
with open ( '/home/ytn/milvusTuning/auto-configure/index_param.json' , 'r' ) as f :
INDEX_PARAM_DICT = json . load ( f )
CONF_PATH = r'/home/ytn/milvusTuning/vector-db-benchmark-master/experiments/configurations/milvus-single-node.json'
ORIGIN_PATH = r'/home/ytn/milvusTuning/vector-db-benchmark-master/engine/servers/milvus-single-node/milvus.yaml.backup'
ADJUST_PATH = r'/home/ytn/milvusTuning/vector-db-benchmark-master/engine/servers/milvus-single-node/milvus.yaml' Dans le fichier auto-configure/vdtuner/utils.py , ligne 13-14:
KNOB_PATH = r'/home/ytn/milvusTuning/auto-configure/whole_param.json'
RUN_ENGINE_PATH = r'/home/ytn/milvusTuning/vector-db-benchmark-master/run_engine.sh' auto-configure/vdtuner/ et exécutez: python3.11 main_tuner.pymain_tuner.py .record.log et pobo_record.log en temps réel. Voici un exemple de sortie dans record.log : [1] 125 {index_type: FLAT, nlist: 128, nprobe: 10, m: 10, nbits: 8, M: 32, efConstruction: 256, ef: 500, reorder_k: 500} {dataCoord*segment*maxSize: 512, dataCoord*segment*sealProportion: 0.23, queryCoord*autoHandoff: True, queryCoord*autoBalance: True, common*gracefulTime: 5000, dataNode*segment*insertBufSize: 16777216, rootCoord*minSegmentSizeToEnableIndex: 1024} 230.5802223315391 0.9999830000000002 125
[2] 214 {index_type: IVF_FLAT, nlist: 128, nprobe: 10, m: 10, nbits: 8, M: 32, efConstruction: 256, ef: 500, reorder_k: 500} {dataCoord*segment*maxSize: 512, dataCoord*segment*sealProportion: 0.23, queryCoord*autoHandoff: True, queryCoord*autoBalance: True, common*gracefulTime: 5000, dataNode*segment*insertBufSize: 16777216, rootCoord*minSegmentSizeToEnableIndex: 1024} 1086.9213657571365 0.8496440000000001 88
[3] 302 {index_type: IVF_SQ8, nlist: 128, nprobe: 10, m: 10, nbits: 8, M: 32, efConstruction: 256, ef: 500, reorder_k: 500} {dataCoord*segment*maxSize: 512, dataCoord*segment*sealProportion: 0.23, queryCoord*autoHandoff: True, queryCoord*autoBalance: True, common*gracefulTime: 5000, dataNode*segment*insertBufSize: 16777216, rootCoord*minSegmentSizeToEnableIndex: 1024} 908.6127610863159 0.8461550000000001 88
...
Si vous utilisez Vdtuner dans votre article scientifique, veuillez citer notre article ICDE 2024:
@inproceedings{yang2024vdtuner,
title={VDTuner: Automated Performance Tuning for Vector Data Management Systems},
author={Yang, Tiannuo and Hu, Wen and Peng, Wangqi and Li, Yusen and Li, Jianguo and Wang, Gang and Liu, Xiaoguang},
booktitle={2024 IEEE 40th International Conference on Data Engineering (ICDE)},
year={2024}
}
Tiannuo yang [email protected]
Wangqi Peng [email protected]
- de Lab NBJL et du groupe Ant