groot 28eca5de38
wal implement (#3464)
* 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>
2020-08-27 09:43:01 +08:00
..
2020-04-16 22:04:47 +08:00
2020-01-16 19:59:26 +08:00
2020-04-16 22:04:47 +08:00
2020-06-11 17:04:00 +08:00
2020-06-11 17:04:00 +08:00
2020-08-27 09:43:01 +08:00
2019-10-21 16:21:32 +08:00

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

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:

  1. Clone milvus repository.

    git clone <milvus repo http/ssh url>
    
  2. Install Mishards dependencies.

    $ cd milvus/shards
    $ pip install -r requirements.txt
    
  3. 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
    
  4. Update path permissions.

    $ sudo chown -R $USER:$USER /tmp/milvus
    
  5. Configure Mishards environmental variables.

    $ cp mishards/.env.example mishards/.env
    
  6. 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.

  1. Install Docker Compose.

  2. Build docker images for these instances.

    $ make build
    
  3. Start all instances.

    $ make deploy
    
  4. 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.

jaegerui

jaegertraces

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 instances1 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:

k8s_arch

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

  1. Start Milvus cluster

    $ make cluster
    
  2. 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.