60 Commits
Author SHA1 Message Date
Bingyi SunandGitHub 70f144a91c enhance: add delete/shard by namespace (#50153)
Shard data by namespace.

issue: #50154

---------

Signed-off-by: sunby <sunbingyi1992@gmail.com>
2026-07-02 15:36:35 +08:00
wei liuandGitHub 7fc234d1fe build(deps): bump rust to 1.92 in builder images and install scripts (#49362)
issue: [#45691](https://github.com/milvus-io/milvus/issues/45691)

## Summary

Bump rust toolchain `1.89 → 1.92` only in installation paths
(Dockerfiles + install scripts).

## Why

milvus-storage HEAD upgrades `iceberg` crate `0.8 → 0.9`, which declares
`edition = "2024"` and `rust-version = "1.92"`. The new MSRV requires
the builder image to ship rust 1.92 before milvus can take that
milvus-storage commit.

This PR is the **first step**:
1. Bump rust toolchain in installation scripts and Dockerfiles.
2. Once merged, builder image is republished with rust 1.92.
3. Follow-up PR will bump `.env` `DATE_VERSION` to the new tag, switch
`cargo +1.89` → `cargo +1.92` in
`internal/core/thirdparty/{tantivy,opendal}/CMakeLists.txt`, and bump
milvus-storage to the iceberg-0.9 commit.

This split avoids the chicken-egg problem: changing the cargo pin or
milvus-storage version in this PR would fail CI, since the currently
pinned builder image only ships rust 1.89.

## Files changed

| File | Change |
|---|---|
| `scripts/install_deps.sh` | `RUST_VERSION="1.89"` → `1.92` |
| `scripts/3rdparty_build.sh` | rust toolchain `1.89` → `1.92` (mac +
linux paths) |
| `build/docker/builder/{cpu,gpu}/*/Dockerfile` (7 files) | rustup
`--default-toolchain=1.89` → `1.92` |
| `DEVELOPMENT.md` | doc table rust version |

## Test plan

- [ ] CI passes on existing builder image (no behaviour change for
current build path)
- [ ] After merge, builder image is republished with rust 1.92
- [ ] Follow-up PR can then bump `.env` and milvus-storage

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2026-04-26 20:55:46 +08:00
d77009d654 enhance: support CONAN_CMD override in 3rdparty_build.sh (#49107)
Fixes #49106.

Follow-up to #48165. Adds an opt-in `CONAN_CMD` environment variable so
developers working on both master (Conan 2.x) and release-2.5/2.6
(Conan 1.x) on the same machine can select a Conan binary per-build
without switching their default `conan`. See commit message for details.

## Test plan
- [x] `make` with default conan (2.x) — unchanged behavior
- [x] `CONAN_CMD=conan-1 make` — fails with clear version mismatch error
- [x] `CONAN_CMD=/nonexistent make` — fails with clear error

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 11:27:41 +08:00
grootandGitHub 499619033f enhance: Migrate to Conan 2.x (#48165)
new JFrog artifactory for conan 2.x:
https://milvus01.jfrog.io/ui/repos/tree/General/default-conan-local2

issue: https://github.com/milvus-io/milvus/issues/47425

conanfiles pr: https://github.com/milvus-io/conanfiles/pull/92
milvus-common: https://github.com/zilliztech/milvus-common/pull/69
milvus-storage: https://github.com/milvus-io/milvus-storage/pull/445
knowhere: https://github.com/zilliztech/knowhere/pull/1495

Signed-off-by: yhmo <yihua.mo@zilliz.com>
2026-04-16 18:31:42 +08:00
d69bdd288c fix: fix macOS 15 ARM64 compilation issues (#7437) (#47810)
issue: #47809

---------

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:19:21 +08:00
XiaofanandGitHub 4f902f1f21 fix: Fix macOS 15+ build compatibility for Apple Silicon (#47466)
issue: #47460

---------

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2026-02-07 09:07:07 +08:00
sthuangandGitHub 0ec47a50ba enhance: clean up vcpkg build (#44386)
related: #44385

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2025-09-16 10:21:59 +08:00
XiaofanandGitHub 21c245761e Update DEVELOPMENT.md 2025-09-08 21:00:36 +08:00
Ted XuandGitHub d903b943c6 enhance: improve documentation on large page size support (#40695)
See: #30843

---------

Signed-off-by: Ted Xu <ted.xu@zilliz.com>
2025-03-17 17:14:13 +08:00
sthuangandGitHub c4ae9f4ece feat: introduce third-party milvus-storage (#39418)
related: https://github.com/milvus-io/milvus/issues/39173

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2025-01-24 17:21:13 +08:00
congqixiaandGitHub bfe5c651d6 doc: Update go version in DEVELOPMENT.md (#36796)
go 1.22 is needed for master branch. Update document for developer guide
markdown.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2024-10-11 21:25:20 +08:00
Rijin-NandGitHub a05a37a583 enhance: GCS native support (GCS implemented using Google Cloud Storage libraries) (#36214)
Native support for Google cloud storage using the Google Cloud Storage
libraries. Authentication is performed using GCS service account
credentials JSON.

Currently, Milvus supports Google Cloud Storage using S3-compatible APIs
via the AWS SDK. This approach has the following limitations:

1. Overhead: Translating requests between S3-compatible APIs and GCS can
introduce additional overhead.
2. Compatibility Limitations: Some features of the original S3 API may
not fully translate or work as expected with GCS.

To address these limitations, This enhancement is needed.

Related Issue: #36212
2024-09-30 13:23:32 +08:00
Zhen YeandGitHub 70bc0e4538 enhance: add skip 3rdparty env var (#35736)
issue: #35611

- call `conan install` is too slow for developer, add option to skip it.

Signed-off-by: chyezh <chyezh@outlook.com>
2024-08-29 14:21:01 +08:00
Ashwin Krishna KumarandGitHub cfa434086a doc: improve VSCode setup in dev docs (#35677)
The developer documentation contains instructions for setting up a dev
environment in VSCode. This PR improves on the below two issues:

1. With the current settings, you cannot run and debug Go unit tests
through the VSCode UI. The `tags` and `ldflags` parameters need to be
modified slightly to make this work.

<img width="436" alt="Screenshot 2024-08-23 at 4 37 37 PM"
src="https://github.com/user-attachments/assets/78bae0b9-5abe-4e48-90cf-e844ad9ef292">

2. Users need to replace all occurrences of
`/Users/zilliz/workspace/milvus` with the actual folder path where
they've cloned Milvus. This is not necessary when using the
`${workspaceFolder}` variable, which VSCode will substitute
automatically.

Signed-off-by: Ashwin Krishna Kumar <ashwin.kumar6@ibm.com>
2024-08-25 16:25:04 +08:00
sthuangandGitHub d8668fe405 enhance: upgrade go version to 1.21.11 (#35257)
issue: #35142

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2024-08-05 16:12:15 +08:00
yellow-shineandGitHub 241c71fdde enhance: use docker compose instead of docker-compose (#35208)
https://github.com/milvus-io/milvus/issues/35209

---------

Signed-off-by: Yellow Shine <sammy.huang@zilliz.com>
2024-08-02 19:32:32 +08:00
yellow-shineandGitHub 7bf68d8657 enhance: upgrade conan version (#35215)
Signed-off-by: Yellow Shine <sammy.huang@zilliz.com>
2024-08-02 19:22:15 +08:00
FrancisandGitHub b138ae742d fix: docs for python3 and conan (#32656)
Conan 1.x is broken for Python 3.12, since imp is deprecated in favour
of importlib, removed in 3.12.

https://github.com/milvus-io/milvus/issues/32655

Signed-off-by: light-city <455954986@qq.com>
2024-05-28 14:35:42 +08:00
shaoting-huangandGitHub de7901121f Upgrade go from 1.20 to 1.21 (#33047)
Signed-off-by: shaoting-huang [shaoting-huang@zilliz.com]

issue: https://github.com/milvus-io/milvus/issues/32982

# Background
Go 1.21 introduces several improvements and changes over Go 1.20, which
is quite stable now. According to
[Go 1.21 Release Notes](https://tip.golang.org/doc/go1.21), the big
difference of Go 1.21 is enabling Profile-Guided Optimization by
default, which can improve performance by around 2-14%. Here are the
summary steps of PGO:
1. Build Initial Binary (Without PGO)
2. Deploying the Production Environment
3. Run the program and collect Performance Analysis Data (CPU pprof)
4. Analyze the Collected Data and Select a Performance Profile for PGO
5. Place the Performance Analysis File in the Main Package Directory and
Name It default.pgo
6. go build Detects the default.pgo File and Enables PGO
7. Build and Release the Updated Binary (With PGO)
8. Iterate and Repeat the Above Steps
<img width="657" alt="Screenshot 2024-05-14 at 15 57 01"
src="https://github.com/milvus-io/milvus/assets/167743503/b08d4300-0be1-44dc-801f-ce681dabc581">

# What does this PR do
There are three experiments, search benchmark by Zilliz test platform,
search benchmark by open-source
[VectorDBBench](https://github.com/zilliztech/VectorDBBench?tab=readme-ov-file),
and search benchmark with PGO. We do both search benchmarks by Zilliz
test platform and by VectorDBBench to reduce reliance on a single
experimental result. Besides, we validate the performance enhancement
with PGO.

## Search Benchmark Report by Zilliz Test Platform
An upgrade to Go 1.21 was conducted on a Milvus Standalone server,
equipped with 16 CPUs and 64GB of memory. The search performance was
evaluated using a 1 million entry local dataset with an L2 metric type
in a 768-dimensional space. The system was tested for concurrent
searches with 50 concurrent tasks for 1 hour, each with a 20-second
interval. The reason for using one server rather than two servers to
compare is to guarantee the same data source and same segment state
after compaction.

Test Sequence:
1. Go 1.20 Initial Run: Insert data, build index, load index, and
search.
2. Go 1.20 Rebuild: Rebuild the index with the same dataset, load index,
and search.
3. Go 1.21 Load: Upload to Go 1.21 within the server. Then load the
index from the second run, and search.
4. Go 1.21 Rebuild: Rebuild the index with the same dataset, load index,
and search.

Search Metrics: 
| Metric | Go 1.20 | Go 1.20 Rebuild Index | Go 1.21 | Go 1.21 Rebuild
Index |

|----------------------------|------------------|-----------------|------------------|-----------------|
| `search requests` | 10,942,683 | 16,131,726 | 16,200,887 | 16,331,052
|
| `search fails` | 0 | 0 | 0 | 0 |
| `search RT_avg` (ms) | 16.44 | 11.15 | 11.11 | 11.02 |
| `search RT_min` (ms) | 1.30 | 1.28 | 1.31 | 1.26 |
| `search RT_max` (ms) | 446.61 | 233.22 | 235.90 | 147.93 |
| `search TP50` (ms) | 11.74 | 10.46 | 10.43 | 10.35 |
| `search TP99` (ms) | 92.30 | 25.76 | 25.36 | 25.23 |
| `search RPS` | 3,039 | 4,481 | 4,500 | 4,536 |

### Key Findings
The benchmark tests reveal that the index build time with Go 1.20 at
340.39 ms and Go 1.21 at 337.60 ms demonstrated negligible performance
variance in index construction. However, Go 1.21 offers slightly better
performance in search operations compared to Go 1.20, with improvements
in handling concurrent tasks and reducing response times.

## Search Benchmark Report By VectorDb Bench
Follow
[VectorDBBench](https://github.com/zilliztech/VectorDBBench?tab=readme-ov-file)
to create a VectorDb Bench test for Go 1.20 and Go 1.21. We test the
search performance with Go 1.20 and Go 1.21 (without PGO) on the Milvus
Standalone system. The tests were conducted using the Cohere dataset
with 1 million entries in a 768-dimensional space, utilizing the COSINE
metric type.

Search Metrics: 
Metric | Go 1.20 | Go 1.21 without PGO
-- | -- | --
Load Duration (seconds) | 1195.95 | 976.37
Queries Per Second (QPS) | 841.62 | 875.89
99th Percentile Serial Latency (seconds) | 0.0047 | 0.0076
Recall | 0.9487 | 0.9489

### Key Findings
Go 1.21 indicates faster index loading times and larger search QPS
handling.

## PGO Performance Test
Milvus has already added
[net/http/pprof](https://pkg.go.dev/net/http/pprof) in the metrics. So
we can curl the CPU profile directly by running
`curl -o default.pgo
"http://${MILVUS_SERVER_IP}:${MILVUS_SERVER_PORT}/debug/pprof/profile?seconds=${TIME_SECOND}"`
to collect the profile as the default.pgo during the first search. Then
I build Milvus with PGO and use the same index to run the search again.
The result is as below:

Search Metrics
| Metric | Go 1.21 Without PGO | Go 1.21 With PGO | Change (%) |

|---------------------------------------------|------------------|-----------------|------------|
| `search Requests` | 2,644,583 | 2,837,726 | +7.30% |
| `search Fails` | 0 | 0 | N/A |
| `search RT_avg` (ms) | 11.34 | 10.57 | -6.78% |
| `search RT_min` (ms) | 1.39 | 1.32 | -5.18% |
| `search RT_max` (ms) | 349.72 | 143.72 | -58.91% |
| `search TP50` (ms) | 10.57 | 9.93 | -6.05% |
| `search TP99` (ms) | 26.14 | 24.16 | -7.56% |
| `search RPS`                 | 4,407       | 4,729       | +7.30%    |

### Key Findings
PGO led to a notable enhancement in search performance, particularly in
reducing the maximum response time by 58% and increasing the search QPS
by 7.3%.

### Further Analysis
Generate a diff flame graphs between two CPU profiles by running `go
tool pprof -http=:8000 -diff_base nopgo.pgo pgo.pgo -normalize`

<img width="1894" alt="goprofiling"
src="https://github.com/milvus-io/milvus/assets/167743503/ab9e91eb-95c7-4963-acd9-d1c3c73ee010">
Further insight of HnswIndexNode and Milvus Search Handler
<img width="1906" alt="hnsw"
src="https://github.com/milvus-io/milvus/assets/167743503/a04cf4a0-7c97-4451-b3cf-98afc20a0b05">
<img width="1873" alt="search_handler"
src="https://github.com/milvus-io/milvus/assets/167743503/5f4d3982-18dd-4115-8e76-460f7f534c7f">

After applying PGO to the Milvus server, the CPU utilization of the
faiss::fvec_L2 function has decreased. This optimization significantly
enhances the performance of the
[HnswIndexNode::Search::searchKnn](https://github.com/zilliztech/knowhere/blob/e0c9c41aa22d8f6e6761a0a54460e4573de15bfe/src/index/hnsw/hnsw.cc#L203)
method, which is frequently invoked by Knowhere during high-concurrency
searches. As the explanation from Go release notes, the function might
be more aggressively inlined by Go compiler during the second build with
the CPU profiling collected from the first run. As a result, the search
handler efficiency within Milvus DataNode has improved, allowing the
server to process a higher number of search queries per second (QPS).



# Conclusion
The combination of Go 1.21 and PGO has led to substantial enhancements
in search performance for Milvus server, particularly in terms of search
QPS and response times, making it more efficient for handling
high-concurrency search operations.

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2024-05-22 13:21:39 +08:00
Yinzuo JiangandGitHub 2cc50d80a3 fix: add openblas in install_deps.sh (#33065)
Install openblas using apt or yum in scripts/install_deps.sh, update
documentations and fix some typos related to build and installation.

issue: #33056, #33066

Signed-off-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
2024-05-17 14:53:37 +08:00
shaoting-huangandGitHub 0e3188b683 doc: Update F&Q in DEVELOPMENT.md (#32782)
Update errors might be encountered when building Milvus in
DEVELOPMENT.md.

Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
2024-05-06 16:17:28 +08:00
Ashwin Krishna KumarandGitHub 1c55016504 doc: fix conan version in DEVELOPMENT.md (#31414)
The conan version used in all the setup scripts was updated to `1.61.0`
in https://github.com/milvus-io/milvus/pull/27870. However, a line in
the developer documentation was left out.

Since the dependencies no longer install correctly with conan `1.58`
(https://github.com/milvus-io/milvus/issues/27869), all documentation
should consistently use the updated version.

Signed-off-by: Ashwin Krishna Kumar <ashwin.kumar6@ibm.com>
2024-03-20 10:23:07 +08:00
sammy.huangandGitHub 7a49cf2104 enhance: [skip e2e] How to build Milvus v2.3.4 arm image to support ky10 sp3 (#30813)
issue: #30843

Signed-off-by: Sammy Huang <sammy.huang@zilliz.com>
2024-02-27 10:52:57 +08:00
yah01andGitHub 6f59510723 Upgrade go to 1.20 (#24390)
Signed-off-by: yah01 <yang.cen@zilliz.com>
2023-11-10 07:46:18 +08:00
Enwei JiaoandGitHub 4faba61647 Upgrade conan to 1.61.0 (#27870)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2023-10-24 17:50:10 +08:00
SheldonandGitHub 351c64b606 fix some typos (#27851)
1. fix some typos in md,yaml #22893

Signed-off-by: Sheldon <chuanfeng.liu@zilliz.com>
2023-10-24 09:30:10 +08:00
Enwei JiaoandGitHub f2a6683a97 Update doc for remove Centos7 (#26476)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2023-08-21 09:54:20 +08:00
Enwei JiaoandGitHub c9d9940918 Remove Ubuntu18.04 support (#24666)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2023-06-06 14:06:36 +08:00
Enwei JiaoandGitHub 940ead200a Update Development.md (#23207)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2023-04-04 13:38:28 +08:00
Jenny LiandGitHub 9aa307d851 Clean unnecessary deps to make milvus (#19711)
Signed-off-by: Jenny Li <jing.li@zilliz.com>

Signed-off-by: Jenny Li <jing.li@zilliz.com>
2022-10-12 14:33:23 +08:00
Enwei JiaoandGitHub aab060aeff upgrade Go 1.18 in go.mod (#18165)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2022-08-01 14:28:33 +08:00
Enwei JiaoandGitHub b32ff76696 update doc about run single test (#17916)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2022-06-30 14:00:18 +08:00
30be20e357 correct DEVELOPMENT.md (#16302)
Signed-off-by: kejiang <ke.jiang@zilliz.com>

Co-authored-by: kejiang <ke.jiang@zilliz.com>
2022-03-31 09:21:28 +08:00
edward.zengandGitHub d4ad785b76 Bump go version in documentation (#15979)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2022-03-16 18:51:21 +08:00
307a8ce535 Support compile and run on Mac (#15491)
Co-authored-by: jaime <yun.zhang@zilliz.com>
Co-authored-by: Cai Yudong <yudong.cai@zilliz.com>
Co-authored-by: Jenny Li <jing.li@zilliz.com>
Co-authored-by: Nemo <yuchen.gao@zilliz.com>
Signed-off-by: yun.zhang <yun.zhang@zilliz.com>

Co-authored-by: Cai Yudong <yudong.cai@zilliz.com>
Co-authored-by: Jenny Li <jing.li@zilliz.com>
Co-authored-by: Nemo <yuchen.gao@zilliz.com>
2022-02-09 14:27:46 +08:00
yanliang567andGitHub da972768fc [skip e2e]Fix a grammar issue (#15085)
Signed-off-by: yanliang567 <yanliang.qiao@zilliz.com>
2022-01-10 22:26:20 +08:00
yanliang567andGitHub ced23921ca [skip e2e]Fix a grammar issue (#14974)
Signed-off-by: yanliang567 <yanliang.qiao@zilliz.com>
2022-01-07 21:07:49 +08:00
yanliang567andGitHub 6e68372833 [skip ci]Update typo in development md (#11586)
Signed-off-by: yanliang567 <yanliang.qiao@zilliz.com>
2021-11-10 20:26:58 +08:00
edward.zengandGitHub 3b3ff4b9c1 [skip ci] Refine development doc. (#11263)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2021-11-04 18:52:27 +08:00
ThyeeZzandGitHub 621ef0a604 [skip ci] remove useless item of TOC (#10581)
Signed-off-by: ThyeeZz <jialian.ji@zilliz.com>
2021-10-27 18:22:23 +08:00
shiyu22andGitHub 649399e29e [skip ci]Update development.md (#10544)
Signed-off-by: shiyu22 <shiyu.chen@zilliz.com>
2021-10-26 14:31:03 +08:00
zwd1208andGitHub eb5985f0bc [skip ci]Update DEVELOPMENT.md (#9817)
Signed-off-by: Weida Zhu <weida.zhu@zilliz.com>
2021-10-13 19:18:33 +08:00
zwd1208andGitHub ad5c2c8fe5 [skip ci]Change uppercase of minio (#9475)
Signed-off-by: Weida Zhu <weida.zhu@zilliz.com>
2021-10-08 16:24:58 +08:00
edward.zengandGitHub 751f2b05d1 [skip ci] refine development guide (#9331)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2021-10-06 17:18:18 +08:00
elfisworkingandGitHub 809129ba63 Update doc to help developers (#9270)
Signed-off-by: elfisworking <zymustb@126.com>
2021-10-05 21:10:22 +08:00
grootandGitHub f02d572532 [skip ci] Update development doc (#9187)
Signed-off-by: groot <yihua.mo@zilliz.com>
2021-10-04 09:07:56 +08:00
grootandGitHub 9600407f83 [skip ci] Fix DEVELOPMENT.md (#9137)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-10-03 17:46:18 +08:00
edward.zengandGitHub 57329670bf [skip ci] Refine development doc toc (#9008)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2021-10-01 12:30:45 +08:00
XiaofanandGitHub 7d0b099907 [skip ci] Add document about how to start test cluster (#8986)
Signed-off-by: xiaofan-luan <xiaofan.luan@zilliz.com>
2021-10-01 08:55:21 +08:00
edward.zengandGitHub 23eb8ad891 [skip ci] Refine development doc (#8727)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2021-09-28 09:52:04 +08:00