
VDTuner는 CentOS 7.9.2009 (Linux 5.5.0) 및 Python 3.11로 구성된 서버에서 테스트됩니다. 평가 된 벡터 데이터베이스 관리 시스템 및 BenchAmark는 Mivlus (버전 2.3.1) 및 벡터 -DB 벤치 마크입니다.
http://arxiv.org/abs/2404.10413의 Preprint를 참조하십시오
docker-compose.yml 파일 (Milvus Startup 파일), 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 , line 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/ 로 이동하여 실행하십시오. 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]
-Lab NBJL 및 Ant Group에서