mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
* refactor LogMgr (#3372) Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * add wal unittest (#3367) * add wal unittest Signed-off-by: groot <yihua.mo@zilliz.com> * fix test fail Signed-off-by: groot <yihua.mo@zilliz.com> * Find system headers with cmake and clang-tidy (#3364) Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci]add google/crc32c into NOTICE.md (#3373) Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * prepare change memmanager for wal Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci]update issue template (#3379) Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * fix wal test case Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] fix java sdk test case (#3375) * java main class Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> Signed-off-by: groot <yihua.mo@zilliz.com> * optimize download & compile of sqlite (#3361) * optimize sqlite Signed-off-by: yangxuan <xuan.yang@zilliz.com> * rm sqlite url Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix bug Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] rm log (#3378) Signed-off-by: shengjun.li <shengjun.li@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] fix generate default entities (#3382) * java main class Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix generate default entities Signed-off-by: zongyufen <zongyufen@foxmail.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Skip flat search params (#3381) * assert top ids Signed-off-by: zw <zw@milvus.io> * update milvus-helm to 0.11.0 Signed-off-by: zw <zw@milvus.io> Co-authored-by: zw <zw@milvus.io> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] update clang-tidy rules (#3386) * [skip ci] update clang-tidy rules Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * [skip ci] update clang-tidy rules Signed-off-by: yudong.cai <yudong.cai@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Optimize download & compile of Aws (#3384) * runable aws Signed-off-by: yangxuan <xuan.yang@zilliz.com> * optimize aws Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] modify test flush and compact (#3390) * java main class Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix generate default entities Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] modify test flush Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] modify test compact Signed-off-by: zongyufen <zongyufen@foxmail.com> Signed-off-by: groot <yihua.mo@zilliz.com> * rewrite insert memmanager Signed-off-by: groot <yihua.mo@zilliz.com> * Optimize thirdparty download workflow (#3394) * Optimize thirdparty download workflow Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Optimize thirdparty download workflow Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Optimize thirdparty download workflow Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Optimize thirdparty download workflow Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Enlarge event queue (#3393) Signed-off-by: yinghao.zou <yinghao.zou@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Add GetPageEntity unittest (#3397) * Add web server interface Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Add unittest/server Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Add web server ut Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix web server insert bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix web server ut crash bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix web server ut gpu compile error Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix codacy quality Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix row_num error Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Change row insert to column insert Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix dsl issue Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix GetEntityByID bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Add GetPageEntity interface Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix some webserver bugs Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Remove server_config.yaml Signed-off-by: fishpenguin <kun.yu@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Fix thirdparty not find ccache but still use it (#3398) * fix sqlite ccache Signed-off-by: yangxuan <xuan.yang@zilliz.com> * thirdparty EP using ccache configure Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * optimize oatpp (#3377) * optimize oatpp Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix some bug Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fit atomic not find bug Signed-off-by: yangxuan <xuan.yang@zilliz.com> * add one config fo oatpp Signed-off-by: yangxuan <xuan.yang@zilliz.com> * change oatpp version Signed-off-by: yangxuan <xuan.yang@zilliz.com> * comment url_md5 Signed-off-by: yangxuan <xuan.yang@zilliz.com> * change oatpp version Signed-off-by: yangxuan <xuan.yang@zilliz.com> * change aws target name Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Split Ftype into Ftype and FEtype (#3341) * fix include directories not find bug (#3323) Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: fluorinedog <fluorinedog@gmail.com> * reduce grpc download file size from 380M to 130M (#3326) * reduce grpc download file size from 380M to 130M Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix bug Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: fluorinedog <fluorinedog@gmail.com> * update clang-tidy config (#3314) * update clang-tidy config Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update .clang-tidy Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update clang-tidy config Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update clang-tidy HeaderFilterRegex Signed-off-by: yudong.cai <yudong.cai@zilliz.com> Signed-off-by: fluorinedog <fluorinedog@gmail.com> * enable fetype Signed-off-by: fluorinedog <fluorinedog@gmail.com> * rename field_element_method Signed-off-by: fluorinedog <fluorinedog@gmail.com> * add FETYPE_TYPE Signed-off-by: fluorinedog <fluorinedog@gmail.com> * Add WebServer unittest (#3321) * Add web server interface Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Add unittest/server Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Add web server ut Signed-off-by: fishpenguin <kun.yu@zilliz.com> Signed-off-by: fluorinedog <fluorinedog@gmail.com> * modify db schema and remove conversion Signed-off-by: fluorinedog <fluorinedog@gmail.com> * weak fetype Signed-off-by: fluorinedog <fluorinedog@gmail.com> * enforce strong fetype Signed-off-by: fluorinedog <fluorinedog@gmail.com> * lint Signed-off-by: fluorinedog <fluorinedog@gmail.com> * format code Signed-off-by: fluorinedog <fluorinedog@gmail.com> * [skip ci] fix Signed-off-by: fluorinedog <fluorinedog@gmail.com> Co-authored-by: XuanYang-cn <51370125+XuanYang-cn@users.noreply.github.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: Cai Yudong <yudong.cai@zilliz.com> Co-authored-by: yukun <kun.yu@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Master codacy check (#3366) * codacy fix Signed-off-by: cqy <yaya645@126.com> * codacy Signed-off-by: cqy <yaya645@126.com> * codacy Signed-off-by: cqy <yaya645@126.com> * codacy check Signed-off-by: cqy <yaya645@126.com> * codacy Signed-off-by: cqy <yaya645@126.com> * codacy Signed-off-by: cqy <yaya645@126.com> * codacy Signed-off-by: cqy <yaya645@126.com> * clang-tiny Signed-off-by: cqy <yaya645@126.com> * clang-tidy check Signed-off-by: cqy <yaya645@126.com> * clang-tindy check Signed-off-by: cqy <yaya645@126.com> * clang-tidy check Signed-off-by: cqy <yaya645@126.com> * clang-tidy Signed-off-by: cqy <yaya645@126.com> * clang-tidy check Signed-off-by: cqy <yaya645@126.com> * clang-tidy check Signed-off-by: cqy <yaya645@126.com> * clang-tidy check Signed-off-by: cqy <yaya645@126.com> * clang-tidy check Signed-off-by: cqy <yaya645@126.com> Co-authored-by: Cai Yudong <yudong.cai@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] add constants.java (#3404) Signed-off-by: zw <zw@milvus.io> Co-authored-by: zw <zw@milvus.io> Signed-off-by: groot <yihua.mo@zilliz.com> * fix dsl term with multi fields (#3403) Signed-off-by: zongyufen <zongyufen@foxmail.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] comment unused insert case (#3405) Signed-off-by: yinghao.zou <yinghao.zou@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * enable clang-tidy check (#3396) * enable clang-tidy check Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update run_clang_tidy.py Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * enable clang-tidy check Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update run_clang_tidy.py Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update run_clang_tidy.py Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update run_clang_tidy.py Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * remove rule modernize-use-equals-default Signed-off-by: yudong.cai <yudong.cai@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * fix the bugs of delete all and compact (#3395) * fix the bugs of delete all and compact Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> * fix the wrong usages in unittest Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> * fix the bug of insert makes no effect Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> * add character check in ExtraFileInfo and change the const size and type Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> * format code Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> * fix wrong test case Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Fix TestSearchDSL multi fields bug (#3411) Signed-off-by: fishpenguin <kun.yu@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Optimize fiu and finish thirdparty optimization (#3412) * fiu runable Signed-off-by: yangxuan <xuan.yang@zilliz.com> * runable riu Signed-off-by: yangxuan <xuan.yang@zilliz.com> * optimize fiu and rm ThirdPartyPackages.cmake Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix bug Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix test using fiu Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] Java sdk test: add testIndex.java (#3409) * [skip ci] add constants.java Signed-off-by: zw <zw@milvus.io> * [skip ci] add testIndex.java Signed-off-by: zw <zw@milvus.io> * [skip ci] add TestDeleteEntities.java Signed-off-by: zw <zw@milvus.io> Co-authored-by: zw <zw@milvus.io> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] Test get entity by id (#3417) * [skip ci] update for Contasts Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] test get entity by id Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] test get entity by id Signed-off-by: zongyufen <zongyufen@foxmail.com> Signed-off-by: groot <yihua.mo@zilliz.com> * update clang-tidy rules (#3416) Signed-off-by: yudong.cai <yudong.cai@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * fix unittest failed Signed-off-by: groot <yihua.mo@zilliz.com> * remove the _id fileld when get collection info (#3414) * fix the bug of issue #3336 Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> * fix wrong test case Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * rewrite insert machinery Signed-off-by: groot <yihua.mo@zilliz.com> * insert fields validation Signed-off-by: groot <yihua.mo@zilliz.com> * code format Signed-off-by: groot <yihua.mo@zilliz.com> * Milvus build stage parallel processing (#3423) * Milvus build stage parallel processing Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Milvus build stage parallel processing Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Milvus build stage parallel processing Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Milvus build stage parallel processing Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Milvus build stage parallel processing Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Milvus build stage parallel processing Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * avoid build hang Signed-off-by: groot <yihua.mo@zilliz.com> * fix faiss cannot build gpu bug (#3424) Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * wal path Signed-off-by: groot <yihua.mo@zilliz.com> * typo Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] add TestSearchEntities.java (#3433) * [skip ci] add constants.java Signed-off-by: zw <zw@milvus.io> * [skip ci] add testIndex.java Signed-off-by: zw <zw@milvus.io> * [skip ci] add TestDeleteEntities.java Signed-off-by: zw <zw@milvus.io> * update TestSearchEntities.java Signed-off-by: zw <zw@milvus.io> * [skip ci] add TestSearchEntities.java Signed-off-by: zw <zw@milvus.io> Co-authored-by: zw <zw@milvus.io> Signed-off-by: groot <yihua.mo@zilliz.com> * #3265 fix memory leak (#3413) * #3265 fix memory leak Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> * fix clang-format Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> * update Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> * comment some change Signed-off-by: Wang Xiangyu <xy.wang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Fix webserver set_config bug (#3425) * Fix TestSearchDSL multi fields bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix set_config bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Update mergify Signed-off-by: jinhai <hai.jin@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Fix Server get stuck if create index with invalide metric types after entities inserted (#3428) * add create index with invalid metric type case Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix bin index validation Signed-off-by: yangxuan <xuan.yang@zilliz.com> * change changelog Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Add partition_tag in GetPageEntities (#3434) * Fix TestSearchDSL multi fields bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Fix set_config bug Signed-off-by: fishpenguin <kun.yu@zilliz.com> * Add partition_tag in GetPageEntities Signed-off-by: fishpenguin <kun.yu@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Fix Server crashed during random test (#3436) Signed-off-by: yinghao.zou <yinghao.zou@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * Optimize clang-tidy workflow for code static analysis (#3432) * Optimize clang-tidy for code static analysis Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> * Optimize clang-tidy for code static analysis Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] add assert by collection stats (#3437) Signed-off-by: zongyufen <zongyufen@foxmail.com> Signed-off-by: groot <yihua.mo@zilliz.com> * fix get entity by id bug Signed-off-by: groot <yihua.mo@zilliz.com> * typo Signed-off-by: groot <yihua.mo@zilliz.com> * fix wal bug Signed-off-by: groot <yihua.mo@zilliz.com> * [skip ci] upgrade master version to v0.11.0 (fix #3449) (#3450) Signed-off-by: yinghao.zou <yinghao.zou@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * fix a bug Signed-off-by: groot <yihua.mo@zilliz.com> * fix wal bug Signed-off-by: groot <yihua.mo@zilliz.com> * fix wal test bug Signed-off-by: groot <yihua.mo@zilliz.com> * fix the data type of crc32c (#3455) Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com> Signed-off-by: groot <yihua.mo@zilliz.com> * fix wal path bug Signed-off-by: groot <yihua.mo@zilliz.com> * Update version (#3454) * [skip ci] add constants.java Signed-off-by: zw <zw@milvus.io> * [skip ci] update server version to 0.11.0 in test cases Signed-off-by: zw <zw@milvus.io> Co-authored-by: zw <zw@milvus.io> Signed-off-by: groot <yihua.mo@zilliz.com> * fix: shards/requirements.txt to reduce vulnerabilities (#3457) The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-SQLALCHEMY-590109 Signed-off-by: groot <yihua.mo@zilliz.com> * fix test failure Signed-off-by: groot <yihua.mo@zilliz.com> * typo Signed-off-by: groot <yihua.mo@zilliz.com> Co-authored-by: Wang Xiangyu <xy.wang@zilliz.com> Co-authored-by: quicksilver <zhifeng.zhang@zilliz.com> Co-authored-by: ThreadDao <zongyufen@foxmail.com> Co-authored-by: XuanYang-cn <51370125+XuanYang-cn@users.noreply.github.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: shengjun.li <shengjun.li@zilliz.com> Co-authored-by: del-zhenwu <56623710+del-zhenwu@users.noreply.github.com> Co-authored-by: zw <zw@milvus.io> Co-authored-by: Cai Yudong <yudong.cai@zilliz.com> Co-authored-by: BossZou <40255591+BossZou@users.noreply.github.com> Co-authored-by: yukun <kun.yu@zilliz.com> Co-authored-by: FluorineDog <fluorinedog@gmail.com> Co-authored-by: cqy123456 <39671710+cqy123456@users.noreply.github.com> Co-authored-by: chen qingxiang <67679556+godchen0212@users.noreply.github.com> Co-authored-by: jinhai <hai.jin@zilliz.com> Co-authored-by: Snyk bot <snyk-bot@snyk.io>
351 lines
11 KiB
C++
351 lines
11 KiB
C++
// Copyright (C) 2019-2020 Zilliz. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
// or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
|
|
#include "db/utils.h"
|
|
|
|
#include <opentracing/mocktracer/tracer.h>
|
|
|
|
#include <experimental/filesystem>
|
|
#include <boost/filesystem.hpp>
|
|
#include <iostream>
|
|
#include <memory>
|
|
#include <string>
|
|
#include <thread>
|
|
#include <utility>
|
|
#include <fiu-control.h>
|
|
#include <random>
|
|
|
|
#include "cache/CpuCacheMgr.h"
|
|
#include "cache/GpuCacheMgr.h"
|
|
#include "config/ServerConfig.h"
|
|
#include "codecs/Codec.h"
|
|
#include "db/DBFactory.h"
|
|
#include "db/snapshot/EventExecutor.h"
|
|
#include "db/snapshot/OperationExecutor.h"
|
|
#include "db/snapshot/Snapshots.h"
|
|
#include "db/snapshot/ResourceHolders.h"
|
|
#ifdef MILVUS_GPU_VERSION
|
|
#include "knowhere/index/vector_index/helpers/FaissGpuResourceMgr.h"
|
|
#endif
|
|
#include "db/meta/backend/MockEngine.h"
|
|
#include "db/meta/backend/MySqlEngine.h"
|
|
#include "db/meta/backend/SqliteEngine.h"
|
|
#include "db/wal/WalProxy.h"
|
|
#include "scheduler/ResourceFactory.h"
|
|
#include "scheduler/SchedInst.h"
|
|
#include "utils/CommonUtil.h"
|
|
|
|
|
|
INITIALIZE_EASYLOGGINGPP
|
|
|
|
namespace {
|
|
|
|
class DBTestEnvironment : public ::testing::Environment {
|
|
public:
|
|
explicit DBTestEnvironment(const std::string &uri) : uri_(uri) {
|
|
}
|
|
|
|
std::string
|
|
getURI() const {
|
|
return uri_;
|
|
}
|
|
|
|
void
|
|
SetUp() override {
|
|
getURI();
|
|
}
|
|
|
|
private:
|
|
std::string uri_;
|
|
};
|
|
|
|
DBTestEnvironment *test_env = nullptr;
|
|
|
|
} // namespace
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
BaseTest::InitLog() {
|
|
el::Configurations defaultConf;
|
|
defaultConf.setToDefault();
|
|
defaultConf.set(el::Level::Debug, el::ConfigurationType::Format, "[%thread-%datetime-%level]: %msg (%fbase:%line)");
|
|
el::Loggers::reconfigureLogger("default", defaultConf);
|
|
}
|
|
|
|
void
|
|
BaseTest::SnapshotStart(bool mock_store, DBOptions options) {
|
|
auto store = Store::Build(options.meta_.backend_uri_, options.meta_.path_,
|
|
milvus::codec::Codec::instance().GetSuffixSet());
|
|
|
|
milvus::engine::snapshot::OperationExecutor::Init(store);
|
|
milvus::engine::snapshot::OperationExecutor::GetInstance().Start();
|
|
milvus::engine::snapshot::EventExecutor::Init(store);
|
|
milvus::engine::snapshot::EventExecutor::GetInstance().Start();
|
|
|
|
milvus::engine::snapshot::CollectionCommitsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::CollectionsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::SchemaCommitsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::FieldCommitsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::FieldsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::FieldElementsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::PartitionsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::PartitionCommitsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::SegmentsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::SegmentCommitsHolder::GetInstance().Reset();
|
|
milvus::engine::snapshot::SegmentFilesHolder::GetInstance().Reset();
|
|
|
|
if (mock_store) {
|
|
store->Mock();
|
|
} else {
|
|
store->DoReset();
|
|
}
|
|
|
|
milvus::engine::snapshot::Snapshots::GetInstance().Reset();
|
|
milvus::engine::snapshot::Snapshots::GetInstance().Init(store);
|
|
}
|
|
|
|
void
|
|
BaseTest::SnapshotStop() {
|
|
// TODO: Temp to delay some time. OperationExecutor should wait all resources be destructed before stop
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(20));
|
|
milvus::engine::snapshot::EventExecutor::GetInstance().Stop();
|
|
milvus::engine::snapshot::OperationExecutor::GetInstance().Stop();
|
|
}
|
|
|
|
void
|
|
BaseTest::SetUp() {
|
|
InitLog();
|
|
fiu_init(0);
|
|
fiu_enable_random("Store.ApplyOperation.mock_timeout", 1, nullptr, 0, 0.2);
|
|
}
|
|
|
|
void
|
|
BaseTest::TearDown() {
|
|
fiu_disable("Store.ApplyOperation.mock_timeout");
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
SnapshotTest::SetUp() {
|
|
BaseTest::SetUp();
|
|
DBOptions options;
|
|
options.meta_.path_ = "/tmp/milvus_ss";
|
|
options.meta_.backend_uri_ = "mock://:@:/";
|
|
options.wal_enable_ = false;
|
|
BaseTest::SnapshotStart(true, options);
|
|
}
|
|
|
|
void
|
|
SnapshotTest::TearDown() {
|
|
BaseTest::SnapshotStop();
|
|
BaseTest::TearDown();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
DBOptions
|
|
DBTest::GetOptions() {
|
|
milvus::cache::CpuCacheMgr::GetInstance().SetCapacity(256 * milvus::engine::MB);
|
|
|
|
auto options = DBOptions();
|
|
options.meta_.path_ = "/tmp/milvus_ss";
|
|
options.meta_.backend_uri_ = "mock://:@:/";
|
|
options.wal_enable_ = false;
|
|
options.auto_flush_interval_ = 1;
|
|
return options;
|
|
}
|
|
|
|
void
|
|
DBTest::SetUp() {
|
|
BaseTest::SetUp();
|
|
BaseTest::SnapshotStart(false, GetOptions());
|
|
|
|
dummy_context_ = std::make_shared<milvus::server::Context>("dummy_request_id");
|
|
opentracing::mocktracer::MockTracerOptions tracer_options;
|
|
auto mock_tracer =
|
|
std::shared_ptr<opentracing::Tracer>{new opentracing::mocktracer::MockTracer{std::move(tracer_options)}};
|
|
auto mock_span = mock_tracer->StartSpan("mock_span");
|
|
auto trace_context = std::make_shared<milvus::tracing::TraceContext>(mock_span);
|
|
dummy_context_->SetTraceContext(trace_context);
|
|
|
|
db_ = milvus::engine::DBFactory::BuildDB(GetOptions());
|
|
db_->Start();
|
|
|
|
auto res_mgr = milvus::scheduler::ResMgrInst::GetInstance();
|
|
res_mgr->Clear();
|
|
res_mgr->Add(milvus::scheduler::ResourceFactory::Create("disk", "DISK", 0, false));
|
|
res_mgr->Add(milvus::scheduler::ResourceFactory::Create("cpu", "CPU", 0));
|
|
|
|
auto default_conn = milvus::scheduler::Connection("IO", 500.0);
|
|
res_mgr->Connect("disk", "cpu", default_conn);
|
|
#ifdef MILVUS_GPU_VERSION
|
|
auto PCIE = milvus::scheduler::Connection("IO", 11000.0);
|
|
res_mgr->Add(milvus::scheduler::ResourceFactory::Create("0", "GPU", 0));
|
|
res_mgr->Connect("cpu", "0", PCIE);
|
|
#endif
|
|
res_mgr->Start();
|
|
milvus::scheduler::SchedInst::GetInstance()->Start();
|
|
milvus::scheduler::JobMgrInst::GetInstance()->Start();
|
|
milvus::scheduler::CPUBuilderInst::GetInstance()->Start();
|
|
}
|
|
|
|
void
|
|
DBTest::TearDown() {
|
|
db_->Stop();
|
|
db_ = nullptr; // db must be stopped before JobMgr and Snapshot
|
|
|
|
milvus::scheduler::JobMgrInst::GetInstance()->Stop();
|
|
milvus::scheduler::SchedInst::GetInstance()->Stop();
|
|
milvus::scheduler::CPUBuilderInst::GetInstance()->Stop();
|
|
milvus::scheduler::ResMgrInst::GetInstance()->Stop();
|
|
milvus::scheduler::ResMgrInst::GetInstance()->Clear();
|
|
|
|
BaseTest::SnapshotStop();
|
|
auto options = GetOptions();
|
|
/* boost::filesystem::remove_all(options.meta_.path_); */
|
|
std::experimental::filesystem::remove_all(options.meta_.path_);
|
|
|
|
BaseTest::TearDown();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
SegmentTest::SetUp() {
|
|
BaseTest::SetUp();
|
|
DBOptions options;
|
|
options.meta_.path_ = "/tmp/milvus_ss";
|
|
options.meta_.backend_uri_ = "mock://:@:/";
|
|
options.wal_enable_ = false;
|
|
BaseTest::SnapshotStart(false, options);
|
|
|
|
db_ = milvus::engine::DBFactory::BuildDB(options);
|
|
db_->Start();
|
|
}
|
|
|
|
void
|
|
SegmentTest::TearDown() {
|
|
BaseTest::SnapshotStop();
|
|
db_->Stop();
|
|
db_ = nullptr;
|
|
BaseTest::TearDown();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
MetaTest::SetUp() {
|
|
auto engine = std::make_shared<milvus::engine::meta::MockEngine>();
|
|
// milvus::engine::DBMetaOptions options;
|
|
// options.backend_uri_ = "mysql://root:12345678@127.0.0.1:3309/milvus";
|
|
// auto engine = std::make_shared<milvus::engine::meta::MySqlEngine>(options);
|
|
meta_ = std::make_shared<milvus::engine::meta::MetaAdapter>(engine);
|
|
meta_->TruncateAll();
|
|
}
|
|
|
|
void
|
|
MetaTest::TearDown() {
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
SchedulerTest::SetUp() {
|
|
BaseTest::SetUp();
|
|
DBOptions options;
|
|
options.meta_.path_ = "/tmp/milvus_ss";
|
|
options.meta_.backend_uri_ = "mock://:@:/";
|
|
options.wal_enable_ = false;
|
|
BaseTest::SnapshotStart(true, options);
|
|
db_ = milvus::engine::DBFactory::BuildDB(options);
|
|
db_->Start();
|
|
|
|
auto res_mgr = milvus::scheduler::ResMgrInst::GetInstance();
|
|
res_mgr->Clear();
|
|
res_mgr->Add(milvus::scheduler::ResourceFactory::Create("disk", "DISK", 0, false));
|
|
res_mgr->Add(milvus::scheduler::ResourceFactory::Create("cpu", "CPU", 0));
|
|
|
|
auto default_conn = milvus::scheduler::Connection("IO", 500.0);
|
|
res_mgr->Connect("disk", "cpu", default_conn);
|
|
#ifdef MILVUS_GPU_VERSION
|
|
auto PCIE = milvus::scheduler::Connection("IO", 11000.0);
|
|
res_mgr->Add(milvus::scheduler::ResourceFactory::Create("0", "GPU", 0));
|
|
res_mgr->Connect("cpu", "0", PCIE);
|
|
#endif
|
|
res_mgr->Start();
|
|
milvus::scheduler::SchedInst::GetInstance()->Start();
|
|
milvus::scheduler::JobMgrInst::GetInstance()->Start();
|
|
milvus::scheduler::CPUBuilderInst::GetInstance()->Start();
|
|
}
|
|
|
|
void
|
|
SchedulerTest::TearDown() {
|
|
db_->Stop();
|
|
db_ = nullptr; // db must be stopped before JobMgr and Snapshot
|
|
|
|
milvus::scheduler::JobMgrInst::GetInstance()->Stop();
|
|
milvus::scheduler::SchedInst::GetInstance()->Stop();
|
|
milvus::scheduler::CPUBuilderInst::GetInstance()->Stop();
|
|
milvus::scheduler::ResMgrInst::GetInstance()->Stop();
|
|
milvus::scheduler::ResMgrInst::GetInstance()->Clear();
|
|
|
|
BaseTest::SnapshotStop();
|
|
BaseTest::TearDown();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
EventTest::SetUp() {
|
|
auto uri = "mock://:@:/";
|
|
store_ = Store::Build(uri, "/tmp/milvus_ss/db");
|
|
store_->DoReset();
|
|
}
|
|
|
|
void
|
|
EventTest::TearDown() {
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
DBOptions
|
|
WalTest::GetOptions() {
|
|
DBOptions options;
|
|
options.wal_path_ = "/tmp/milvus_wal";
|
|
options.wal_enable_ = true;
|
|
return options;
|
|
}
|
|
|
|
void
|
|
WalTest::SetUp() {
|
|
auto options = GetOptions();
|
|
std::experimental::filesystem::create_directory(options.wal_path_);
|
|
milvus::engine::DBPtr db = std::make_shared<milvus::engine::DBProxy>(nullptr, GetOptions());
|
|
db_ = std::make_shared<milvus::engine::WalProxy>(db, options);
|
|
db_->Start();
|
|
}
|
|
|
|
void
|
|
WalTest::TearDown() {
|
|
db_->Stop();
|
|
db_ = nullptr;
|
|
std::experimental::filesystem::remove_all(GetOptions().wal_path_);
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
int
|
|
main(int argc, char **argv) {
|
|
::testing::InitGoogleTest(&argc, argv);
|
|
|
|
std::string uri;
|
|
if (argc > 1) {
|
|
uri = argv[1];
|
|
}
|
|
|
|
test_env = new DBTestEnvironment(uri);
|
|
::testing::AddGlobalTestEnvironment(test_env);
|
|
return RUN_ALL_TESTS();
|
|
}
|