VDTuner
1.0.0

VDTunerは、Centos 7.9.9.2009(Linux 5.5.0)およびPython 3.11で構成されたサーバーでテストされます。評価されたベクトルデータベース管理システムとベンチマークは、Mivlus(バージョン2.3.1)とVector-DBベンチマークです。
http://arxiv.org/abs/2404.10413のプリプリントを参照してください
docker-compose.yml (Milvus Startup File)、 milvus.yaml (使用のためのMilvus構成ファイル)、およびmilvus.yaml.backup (コピーおよび変更のためのMilvus構成ファイル)をベンチマークパスvector-db-benchmark-master/engine/servers/milvus-single-nodeまたは追加)します。run_engine.sh vector-db-benchmark-master/run_engine.shにコピーします。vector-db-benchmark-masterに移動して実行: sudo ./run_engine.sh "" "" random-100 。 vector-db-benchmark-master/datasets/glove-100-angular/glove-100-angular.hdf5にダウンロードします。 ファイルvector-db-benchmark-master/experiments/configurations/milvus-single-node.json次のようにdefualtインデックス構成に変更します。パラメーターparallel 、サーバーの仕様に従って変更できます。
[
{
"name" : " milvus-p10 " ,
"engine" : " milvus " ,
"connection_params" : {},
"collection_params" : {},
"search_params" : [
{
"parallel" : 10 ,
"params" : {}
}
],
"upload_params" : {
"parallel" : 10 ,
"index_type" : " AUTOINDEX " ,
"index_params" : {}
}
}
]データセットとタイムアウト制限を指定します。ファイルauto-configure/vdtuner/utils.py (117行目)では、各ワークロードリプレイで最大15分でデータセットグローブをテストすると仮定します。
result = sp . run ( f'sudo timeout 900 { RUN_ENGINE_PATH } "" "" glove-100-angular' , shell = True , stdout = sp . PIPE ) VDTunerを実行するには、チューニングパラメーターとベンチマークパスの構成ファイルを指定する必要があります。これが例です。
ファイルauto-configure/configure.py 、行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'ファイルauto-configure/vdtuner/utils.py 、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/ and runに移動します。 python3.11 main_tuner.pymain_tuner.pyで必要な反復数を変更できます。record.logおよびpobo_record.logにログに記録されます。これが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
...
科学記事でVDTunerを使用する場合は、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]
- ラボNBJLおよびANTグループから