Commit Graph

133 Commits (17532517c611cafe5ec7a79bda47c9f296e82682)

Author SHA1 Message Date
yihao.dai 89bd75fab7
fix: apply denylist retry to pack_writer writeLog and binlog import (#48402)
### Summary
Follow-up to #48152 which applied denylist retry to parquet/json/csv
imports but missed two other paths.

- **fix(High)**: `pack_writer.go` `writeLog` now skips retry only for
non-retryable errors (permission denied, bucket not found, invalid
credentials, etc.), matching the denylist strategy in
`retryable_reader.go`.
- **fix(Medium)**: Binlog import's `WithDownloader` callbacks now use
`multiReadWithRetry`, skipping retry only for non-retryable errors.
Previously all transient failures were not retried.
- **fix(Low)**: `IsMilvusError` in `merr/utils.go` switched from
`errors.Cause` (root only) to `errors.As` (full chain traversal).

### Out of Scope
- `pack_writer_v2.go` / `pack_writer_v3.go` — same retry pattern but
different code path (multi-part upload); separate fix.
- `writeDelta` — no retry wrapper; separate concern.

issue: #48153

---------

Signed-off-by: Yihao Dai <yihao.dai@zilliz.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 18:25:27 +08:00
zhuwenxing 96615cce41
test: add MinHash DIDO function test suite (#47324)
/kind improvement

add testcases and fix a related issue

issue: #47928

---------

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 17:17:30 +08:00
wei liu 220c691500
feat: [ExternalTable Part4] Support data mapping for external collections (#47730)
design doc:
https://github.com/milvus-io/milvus-design-docs/blob/main/design_docs/20260105-external_table.md

issue: https://github.com/milvus-io/milvus/issues/45881
## Summary
- Pre-allocate segment IDs in DataCoord, pass to DataNode for direct
final-path manifest writes (eliminating two-phase ID workflow)
- Add FFI bridges for file exploration (`ExploreFiles`, `GetFileInfo`)
and manifest creation (`CreateManifestForSegment`,
`ReadFragmentsFromManifest`)
- Implement fragment-to-segment balancing with configurable target rows
per segment
- Add `ExternalSpec` parser for external data format configuration
- Extend `UpdateExternalCollectionRequest` proto with schema, storage
config, and pre-allocated segment ID fields
- Add E2E test for external collection refresh with data verification

> **Note**: This PR includes Part3 changes (PR #47303). After Part3 is
merged, this PR will be rebased to only contain Part4-specific changes.

## Test plan
- [x] Unit tests for `task_refresh_external_collection.go` (28 tests)
- [x] Unit tests for `task_update.go` and fragment utilities (40 tests)
- [x] Unit tests for FFI bridges (`exttable_test.go`, 9 tests)
- [x] Unit tests for `ExternalSpec` parser
- [x] Unit tests for paramtable config
- [x] Integration test with real Parquet files
- [x] `make lint-fix` passes
- [ ] E2E test with MinIO backend

---------

Signed-off-by: Jiquan Long <jiquan.long@zilliz.com>
Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2026-03-04 18:09:21 +08:00
Li Liu 7596fe6a44
doc: add .claude/ to .gitignore (#47871)
## Summary
- Add `.claude/` to `.gitignore` to prevent Claude Code runtime files
(settings.local.json, memory/, projects/) from being accidentally
committed

Signed-off-by: Li Liu <li.liu@zilliz.com>
2026-02-25 22:45:16 +08:00
Li Liu d786c2a6d5
doc: add CLAUDE.md for AI-assisted development (#47862)
## Summary
- Add `CLAUDE.md` with project-specific instructions for Claude Code
(architecture, testing, code conventions, commit guidelines)
- Remove `claude.md` from `.gitignore` to allow tracking

Signed-off-by: Li Liu <li.liu@zilliz.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:25:51 +08:00
yanliang567 9ef7e25778
test: enable search by ids on null vectors tests for #47065 (#47559)
## Summary
- Enable search by ids tests that were commented out pending fix of
#47065
- Fix syntax error in test: `for i in len()` → `for i in range(len())`
- Update test expectations to match the fixed behavior:
  - Search on null vectors now returns empty results instead of error
- Fix assertion to use correct `num_entities_with_not_null_vector` count

## Test plan
- [x] `test_milvus_client_add_nullable_vector_field_search` - verified
passing
- [x] `test_milvus_client_collection_null_vector_field_search` -
verified passing

issue: #47065

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Signed-off-by: Yan Liang <yanliang@zilliz.com>
Signed-off-by: yanliang567 <yanliang.qiao@zilliz.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 14:17:49 +08:00
cai.zhang 3425f533db
fix: prevent server crash on division/modulo by zero in filter expressions (#47302)
issue: #47285 

Fix critical DoS vulnerability where filter expressions containing
division or modulo by zero operations cause Milvus server to crash with
SIGFPE .
Any client with query access could crash the server remotely using
expressions like `"int_field / {d} == 1", params:{"d": 0}`.

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2026-01-28 11:33:32 +08:00
Xiaofan 5fb7c4024a
feat: Add mgit intelligent Git workflow tool for Milvus development (#46970)
issue: #46969

Signed-off-by: (Checked)

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2026-01-12 16:49:32 +08:00
aoiasd 322caafe18
feat: support file params in analyzer and set jieba dict file (#45206)
relate: https://github.com/milvus-io/milvus/issues/43687
Support use user provice file by file params, in analyzer params.
Could use local file or remote file resource.
Support use file params in jieba extern dict.

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-11-25 11:33:06 +08:00
Xiaofan a9895bb904
enhance: add robust handle etcd servercrash (#45304)
related to #45303
fix milvus pod may restart when etcd pod start

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2025-11-13 10:23:36 +08:00
Tianx 2c0c5ef41e
feat: timestamptz expression & index & timezone (#44080)
issue: https://github.com/milvus-io/milvus/issues/27467

>My plan is as follows.
>- [x] M1 Create collection with timestamptz field
>- [x] M2 Insert timestamptz field data
>- [x] M3 Retrieve timestamptz field data
>- [x] M4 Implement handoff
>- [x] M5 Implement compare operator
>- [x] M6 Implement extract operator
 >- [x] M8 Support database/collection level default timezone
>- [x] M7 Support STL-SORT index for datatype timestamptz

---

The third PR of issue: https://github.com/milvus-io/milvus/issues/27467,
which completes M5, M6, M7, M8 described above.

## M8 Default Timezone

We will be able to use alter_collection() and alter_database() in a
future Python SDK release to modify the default timezone at the
collection or database level.

For insert requests, the timezone will be resolved using the following
order of precedence: String Literal-> Collection Default -> Database
Default.
For retrieval requests, the timezone will be resolved in this order:
Query Parameters -> Collection Default -> Database Default.
In both cases, the final fallback timezone is UTC.


## M5: Comparison Operators

We can now use the following expression format to filter on the
timestamptz field:

- `timestamptz_field [+/- INTERVAL 'interval_string'] {comparison_op}
ISO 'iso_string' `

- The interval_string follows the ISO 8601 duration format, for example:
P1Y2M3DT1H2M3S.

- The iso_string follows the ISO 8601 timestamp format, for example:
2025-01-03T00:00:00+08:00.

- Example expressions: "tsz + INTERVAL 'P0D' != ISO
'2025-01-03T00:00:00+08:00'" or "tsz != ISO
'2025-01-03T00:00:00+08:00'".

## M6: Extract

We will be able to extract sepecific time filed by kwargs in a future
Python SDK release.
The key is `time_fields`, and value should be one or more of "year,
month, day, hour, minute, second, microsecond", seperated by comma or
space. Then the result of each record would be an array of int64.



## M7: Indexing Support

Expressions without interval arithmetic can be accelerated using an
STL-SORT index. However, expressions that include interval arithmetic
cannot be indexed. This is because the result of an interval calculation
depends on the specific timestamp value. For example, adding one month
to a date in February results in a different number of added days than
adding one month to a date in March.

--- 

After this PR, the input / output type of timestamptz would be iso
string. Timestampz would be stored as timestamptz data, which is int64_t
finally.

> for more information, see https://en.wikipedia.org/wiki/ISO_8601

---------

Signed-off-by: xtx <xtianx@smail.nju.edu.cn>
2025-09-23 10:24:12 +08:00
XuanYang-cn 09b29a88aa
enhance: Remove not inused allocator (#43821)
See also: #44039

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-08-27 14:31:50 +08:00
wei liu dad43a3894
fix: cost metrics collection logic for replica selection (#41965)
issue: #41621
- Deprecate EnableWorkerSQCostMetrics parameter
- Always collect cost metrics from all search and retrieve results
- Update code with comments explaining the changes rationale

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2025-05-22 10:20:25 +08:00
Buqian Zheng 3de904c7ea
feat: add cachinglayer to sealed segment (#41436)
issue: https://github.com/milvus-io/milvus/issues/41435

---------

Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>
2025-04-28 10:52:40 +08:00
aoiasd 11f2fae42e
feat: support extend default dict for jieba tokenizer (#41360)
relate: https://github.com/milvus-io/milvus/issues/41213

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-04-22 20:34:37 +08:00
Micka 5cc104b412
fix: Change CMake variable for switch to knowhere-cuvs (#40105)
issue: https://github.com/milvus-io/milvus/issues/39883

Signed-off-by: Mickael Ide <mide@nvidia.com>
2025-02-27 22:05:58 +08:00
XuanYang-cn 7261128df0
enhance: Remove not inuse binlog iterators (#39243)
1. Remove datanode/iterators/binlog_iterator
2. Remove storage/binlog_iterator/MergeIterator

See also: #39242

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-01-21 11:15:04 +08:00
XuanYang-cn 74b4369c5b
fix: Record active collections for l0Policy (#39217)
By recording the active collection lists, The l0 compaction trigger
of view change and idle won't influence each other.

Also this pr replaces the L0View cache with real L0 segments' change.
Save some memory and make L0 compaction triggers more accurate.

See also: #39187

Signed-off-by: yangxuan <xuan.yang@zilliz.com>

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-01-16 20:19:02 +08:00
Zhen Ye bb8d1ab3bf
enhance: make new go package to manage proto (#39114)
issue: #39095

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2025-01-10 10:49:01 +08:00
MimoN f7c7ac51fc
fix: update webui and remove the unnecessary code (#37726)
issue: #36621
* update webui top nav
* remove the unnecessary code in .gitignore file

Signed-off-by: mimo.oyn <ning.ouyang@zilliz.com>
2024-11-16 10:56:33 +08:00
MimoN 0f0162f70a
feat: refactor web ui (#37698)
issue: #36621

* The front-end code of the management interface has been refactored
using React.
* The interaction and display of the front-end interface have been
optimized.

Signed-off-by: mimo.oyn <ning.ouyang@zilliz.com>
Co-authored-by: zilliz <zilliz@zillizdeMacBook-Pro.local>
2024-11-15 17:20:30 +08:00
chyezh 39c7e06bc5
enhance: add message and msgstream msgpack adaptor (#34874)
issue: #33285

- make message builder and message conversion type safe
- add adaptor type and function to adapt old msgstream msgpack and
message interface

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2024-07-22 20:59:42 +08:00
jaime 9630974fbb
enhance: move rocksmq from internal to pkg module (#33881)
issue: #33956

Signed-off-by: jaime <yun.zhang@zilliz.com>
2024-06-25 21:18:15 +08:00
Bingyi Sun e8c5e75786
enhance: ignore proto generated files (#28537)
ignore proto generated files
issue: https://github.com/milvus-io/milvus/issues/28566

---------

Signed-off-by: sunby <sunbingyi1992@gmail.com>
2023-11-22 10:20:22 +08:00
cai.zhang a362bb1457
Support array datatype (#26369)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-09-19 14:23:23 +08:00
chyezh f97127ae55
add nats mq wrappers (#24445)
bug fixup, configurable natsmq, add unittest, pass e2e.



move natsmq to pkg project

Signed-off-by: chyezh <ye.zhen@zilliz.com>
Co-authored-by: yiwangdr <yiwangdr@gmail.com>
2023-06-07 10:00:37 +08:00
Bennu f8c9c527c9
[skip e2e]Add docker-compose for gpu (#22878)
Signed-off-by: Bennu-Li <yunmei.li@zilliz.com>
2023-03-21 17:59:57 +08:00
Enwei Jiao 958e94f6f0
Use Conan as c++ package manager (#19920)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>

Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2022-11-23 10:39:11 +08:00
xige-16 4de1bfe5bc
Add cpp data codec (#18538)
Signed-off-by: xige-16 <xi.ge@zilliz.com>
Co-authored-by: zhagnlu lu.zhang@zilliz.com

Signed-off-by: xige-16 <xi.ge@zilliz.com>
2022-09-09 22:12:34 +08:00
XuanYang-cn 867ea63bdd
Move TopK check inside parseQueryInfo (#18892)
Signed-off-by: yangxuan <xuan.yang@zilliz.com>

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2022-08-30 10:32:56 +08:00
SimFG 79523ff8d4
Fix the wrong log tag in the test case (#18103)
Signed-off-by: SimFG <bang.fu@zilliz.com>
2022-07-06 15:38:20 +08:00
codeman 95a3830dc6
fix password comparison too slow (#17874) (#17897)
Signed-off-by: kejiang <ke.jiang@zilliz.com>

Co-authored-by: kejiang <ke.jiang@zilliz.com>
2022-06-29 20:02:18 +08:00
Enwei Jiao 16c3aedc15
refine complie configuration (#17502)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2022-06-24 21:12:15 +08:00
godchen 675e4dcaa2
Remove dablooms (#13881)
Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com>
2021-12-21 18:24:58 +08:00
shaoyue 08a2b76963
[skip ci] Add comment in gitinore (#11742)
Signed-off-by: shaoyue.chen <shaoyue.chen@zilliz.com>
2021-11-12 19:27:32 +08:00
edward.zeng d86e651388
[skip ci] Ignore docker compose volumes (#11169)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2021-11-03 15:24:11 +08:00
XuanYang-cn 30395cb1b1
Add more specific comment in datanode (#9488)
Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2021-10-09 00:09:47 +08:00
XuanYang-cn 57117712fe
[skip ci]Tidy gitignore (#8971)
Signed-off-by: Yang Xuan <xuan.yang@zilliz.com>
2021-10-01 06:44:41 +08:00
groot fb0862e952
[skip ci] Update gitignore (#8738)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-09-28 13:56:03 +08:00
groot c5b71e8d04
[skip ci] Update gitignore (#8533)
Signed-off-by: Yihua <michaelmo@YihuadeMacBook-Pro.local>

Co-authored-by: Yihua <michaelmo@YihuadeMacBook-Pro.local>
2021-09-26 10:23:57 +08:00
XuanYang-cn 4ee8275b88
Fix master compile error (#8333)
Resolves: #8336

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2021-09-22 20:31:54 +08:00
groot 77e88144fc
Update code coverage script (#8280)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-09-22 16:01:53 +08:00
groot f12fa50f6f
Prepare for cpp codecoverage (#7900)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-09-14 19:05:52 +08:00
cai.zhang e1081b6783
Increase indexcoord component code coverage (#7558)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2021-09-08 14:23:59 +08:00
quicksilver d23383b5c2
Add pytest pipeline for pymilvus-orm (#6278)
Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com>
2021-07-03 14:52:28 +08:00
Cai Yudong a09a3a1905
rename service to coord (#6020)
Signed-off-by: yudong.cai <yudong.cai@zilliz.com>
2021-06-23 16:14:08 +08:00
yukun c63524deb9
Add dablooms (#5440)
* Add dablooms cwrapper

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

* Fix undefined reference bug

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

* Add cwrapper_dablooms_build shell script

Signed-off-by: fishpenguin <kun.yu@zilliz.com>
2021-05-28 10:23:30 +08:00
Xiangyu Wang bfc057d56d
Change pymilvus-distributed to pymilvus (#5369)
Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com>
2021-05-24 18:14:57 +08:00
XuanYang-cn cebdfb34f7
Enable multiple datanode (#5068)
Now it's able to start multiple datanode, however, they will process the same insert data.
Further changes are needed to truly enable multiple datanode:

While registering, dataservice need to return different insert channels for different datanode.

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2021-04-28 18:43:48 +08:00
Xiangyu Wang 746fc556a0
[skip ci]Add go code coverage (#5024)
Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com>
2021-04-24 15:10:24 +08:00