* 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>
Mishards - An Experimental Sharding Middleware
Milvus aims to achieve efficient similarity search and analytics for massive-scale vectors. A standalone Milvus instance can easily handle vector search among billion-scale vectors. However, for 10 billion, 100 billion or even larger datasets, a Milvus cluster is needed.
Ideally, this cluster can be accessed and used just as the standalone instance, meanwhile it satisfies the business requirements such as low latency and high concurrency.
This page meant to demonstrates how to use Mishards, an experimental sharding middleware for Milvus, to establish an orchestrated cluster.
What is Mishards
Mishards is a middleware that is developed using Python. It provides unlimited extension of memory and computation capacity through request forwarding, read/write splitting, horizontal scalability and dynamic extension. It works as the proxy of the Milvus system.
Using Mishards in Milvus cluster deployment is an experimental feature available for user test and feedback.
How Mishards works
Mishards splits the upstream requests to sub-requests and forwards them to Milvus servers. When the search computation is completed, all results are collected by Mishards and sent back to the client.
Below graph is a demonstration of the process:
Mishards example codes
Below examples codes demonstrate how to build from source code a Milvus server with Mishards on a standalone machine, as well as how to use Kubernetes to establish Milvus cluster with Mishards.
Before executing these examples, make sure you meet the prerequisites of Milvus installation.
Build from source code
Prequisites
Make sure Python 3.6 or higher is installed.
Start Milvus and Mishards from source code
Follow below steps to start a standalone Milvus instance with Mishards from source code:
-
Clone milvus repository.
git clone <milvus repo http/ssh url> -
Install Mishards dependencies.
$ cd milvus/shards $ pip install -r requirements.txt -
Start Milvus server.
$ sudo nvidia-docker run --rm -d -p 19530:19530 -v /tmp/milvus/db:/var/lib/milvus/db milvusdb/milvus:0.9.1-gpu-d052920-e04ed5 -
Update path permissions.
$ sudo chown -R $USER:$USER /tmp/milvus -
Configure Mishards environmental variables.
$ cp mishards/.env.example mishards/.env -
Start Mishards server.
$ python mishards/main.py
Docker example
The all_in_one example shows how to use Docker container to start 2 Milvus instances, 1 Mishards instance and 1 Jaeger instance.
-
Install Docker Compose.
-
Build docker images for these instances.
$ make build -
Start all instances.
$ make deploy -
Confirm instance status.
$ make probe_deploy Pass ==> Pass: Connected Fail ==> Error: Fail connecting to server on 127.0.0.1:19530. Timeout
To check the service tracing, open the Jaeger page on your browser.
To stop all instances, use the following command:
$ make clean_deploy
Kubernetes example
Using Kubernetes to deploy Milvus cluster requires that the developers have a basic understanding of general concepts of Kubernetes.
This example mainly demonstrates how to use Kubernetes to establish a Milvus cluster containing 2 Milvus instances(1 read instance and 1 write instance), 1 MySQL instance and 1 Mishards instance.
This example does not include tasks such as setting up Kubernetes cluster, installing shared storage and using command tools such as kubectl.
Below is the architecture of Milvus cluster built upon Kubernetes:
Prerequisites
- A Kubernetes cluster is already established.
- nvidia-docker 2.0 is already installed.
- Shared storage is already installed.
- kubectl is installed and can access the Kubernetes cluster.
Use Kubernetes to build a Milvus cluster
-
Start Milvus cluster
$ make cluster -
Confirm that Mishards is connected to Milvus.
$ make probe_cluster Pass ==> Pass: Connected
To check cluster status:
$ make cluster_status
To delete the cluster:
$ make clean_cluster
To add a read instance:
$ cd kubernetes_demo
$ ./start.sh scale-ro-server 2
To add a proxy instance:
$ cd kubernetes_demo
$ ./start.sh scale-proxy 2
To check cluster logs:
$ kubectl logs -f --tail=1000 -n milvus milvus-ro-servers-0
Mishards Unit test
Unit test
$ cd milvus/shards
$ make test
Code coverage test
$ cd milvus/shards
$ make coverage
Code format check
$ cd milvus/shards
$ make style
Mishards configuration
Overall configuration
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
Debug |
No | boolean | True |
Choose if to enable Debug work mode. |
TIMEZONE |
No | string | UTC |
Timezone |
MAX_RETRY |
No | integer | 3 |
The maximum retry times allowed to connect to Milvus. |
SERVER_PORT |
No | integer | 19530 |
Define the server port of Mishards. |
WOSERVER |
Yes | string | |
Define the address of Milvus write instance. Currently, only static settings are supported. Format for reference: tcp://127.0.0.1:19530. |
Metadata
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
SQLALCHEMY_DATABASE_URI |
Yes | string | |
Define the database address for metadata storage. Format standard: RFC-738-style. For example: mysql+pymysql://root:root@127.0.0.1:3306/milvus?charset=utf8mb4. |
SQL_ECHO |
No | boolean | False |
Choose if to print SQL statements. |
SQLALCHEMY_DATABASE_TEST_URI |
No | string | |
Define the database address of metadata storage in test environment. |
SQL_TEST_ECHO |
No | boolean | False |
Choose if to print SQL statements in test environment. |
Service discovery
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
DISCOVERY_PLUGIN_PATH |
No | string | |
Define the search path to locate the plug-in. The default path is used if the value is not set. |
DISCOVERY_CLASS_NAME |
No | string | static |
Under the plug-in search path, search the class based on the class name, and instantiate it. Currently, the system provides 2 classes: static and kubernetes. |
DISCOVERY_STATIC_HOSTS |
No | list | [] |
When DISCOVERY_CLASS_NAME is static , define a comma-separated service address list, for example192.168.1.188,192.168.1.190. |
DISCOVERY_STATIC_PORT |
No | integer | 19530 |
When DISCOVERY_CLASS_NAME is static, define the server port. |
DISCOVERY_KUBERNETES_NAMESPACE |
No | string | |
When DISCOVERY_CLASS_NAME is kubernetes, define the namespace of Milvus cluster. |
DISCOVERY_KUBERNETES_IN_CLUSTER |
No | boolean | False |
When DISCOVERY_CLASS_NAME is kubernetes , choose if to run the server in Kubernetes. |
DISCOVERY_KUBERNETES_POLL_INTERVAL |
No | integer | 5 (Seconds) |
When DISCOVERY_CLASS_NAME is kubernetes , define the listening cycle of the server. |
DISCOVERY_KUBERNETES_POD_PATT |
No | string | |
When DISCOVERY_CLASS_NAME is kubernetes , map the regular expression of Milvus Pod. |
DISCOVERY_KUBERNETES_LABEL_SELECTOR |
No | string | |
When SD_PROVIDER is kubernetes, map the label of Milvus Pod. For example: tier=ro-servers. |
Tracing
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
TRACER_PLUGIN_PATH |
No | string | |
Define the search path to locate the tracing plug-in. The default path is used if the value is not set. |
TRACER_CLASS_NAME |
No | string | |
Under the plug-in search path, search the class based on the class name, and instantiate it. Currently, only Jaeger is supported. |
TRACING_SERVICE_NAME |
No | string | mishards |
When TRACING_CLASS_NAME is Jaeger, the name of the tracing service. |
TRACING_SAMPLER_TYPE |
No | string | const |
When TRACING_CLASS_NAME is Jaeger, the sampling type of the tracing service. |
TRACING_SAMPLER_PARAM |
No | integer | 1 |
When TRACING_CLASS_NAME is Jaeger, the sampling frequency of the tracing service. |
TRACING_LOG_PAYLOAD |
No | boolean | False |
When TRACING_CLASS_NAME is Jaeger, choose if to sample Payload. |
Logging
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
LOG_LEVEL |
No | string | DEBUG |
Log recording levels. Currently supports DEBUG ,INFO ,WARNING and ERROR. |
LOG_PATH |
No | string | /tmp/mishards |
Log recording path. |
LOG_NAME |
No | string | logfile |
Log recording name. |
Routing
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
ROUTER_PLUGIN_PATH |
No | string | |
Define the search path to locate the routing plug-in. The default path is used if the value is not set. |
ROUTER_CLASS_NAME |
No | string | FileBasedHashRingRouter |
Under the plug-in search path, search the class based on the class name, and instantiate it. Currently, only FileBasedHashRingRouter is supported. |
ROUTER_CLASS_TEST_NAME |
No | string | FileBasedHashRingRouter |
Under the plug-in search path, search the class based on the class name, and instantiate it. Currently, FileBasedHashRingRouter is supported for test environment only. |



