milvus-io/milvus
 Watch   
 Star   
 Fork   
7 days ago
milvus

milvus-2.6.19

Release note is coming soon...

29 days ago
milvus

milvus-2.6.18

Release note is coming soon...

2026-05-26 06:32:32
milvus

client/v2.6.5

Highlights

  • Adds Go SDK support for nullable vector columns across dense, binary, sparse, and int8 vector types.
  • Adds Array field partial update helpers for ARRAY_APPEND and ARRAY_REMOVE in upsert requests.
  • Validates that vector fields added to existing collections are nullable before sending AddCollectionField requests.
  • Bumps the Go SDK version constant to 2.6.5 and updates milvus-proto/go-api/v2 to v2.6.17.

New Features

  • Nullable vector columns: Added nullable column constructors for vector fields: NewNullableColumnFloatVector, NewNullableColumnBinaryVector, NewNullableColumnFloat16Vector, NewNullableColumnBFloat16Vector, NewNullableColumnInt8Vector, and NewNullableColumnSparseFloatVector. These constructors accept compact non-null vector values plus validData, and validate that the values length matches the valid row count. (#49848)

  • Nullable vector response decoding: FieldDataColumn now decodes nullable vector field data using ValidData for FloatVector, BinaryVector, Float16Vector, BFloat16Vector, SparseFloatVector, and Int8Vector. Null rows are preserved in the returned column while compact wire-format vector payloads are expanded back to row-aligned columns. (#49848)

  • Array partial update operations: Added upsert helpers WithArrayAppend(fieldName), WithArrayRemove(fieldName), and WithFieldPartialOp(fieldName, op) for Array field partial updates. Non-REPLACE field ops are serialized into UpsertRequest.FieldOps and automatically enable partial_update for both column-based and row-based upserts. (#49328)

Bug Fixes

  • AddCollectionField vector validation: AddCollectionField now validates options before sending the RPC and rejects vector fields added to existing collections unless the field is marked nullable=true, preventing invalid schema changes from reaching the server. (#49848)

  • All-null sparse vector handling: Sparse vector column serialization now handles empty value sets by emitting dimension 0, allowing all-null nullable sparse vector columns to round-trip without panics or invalid dimension calculations. (#49848)

  • Nullable column row counts: Added Column.ValidCount() support so nullable columns can report the number of non-null rows separately from total row count. Struct-array columns return their total length. (#49848)

Contributors

  • @marcelo-cjl
  • @weiliu1031
2026-05-16 09:42:28
milvus

milvus-2.6.17

Release note is coming soon..

2026-05-12 11:55:45
milvus

milvus-2.6.16

Release note is coming...

2026-05-08 09:32:06
milvus

milvus-3.0.0-beta

Release note is coming soon...

2026-05-07 19:28:07
milvus

client/v2.6.4

Highlights

  • Completes Go SDK (client/v2) struct-array support, especially vector sub-fields and EmbeddingList/MAX_SIM search.
  • Fixes custom gRPC DialOptions so they no longer drop the SDK's default keepalive, backoff, and max receive message-size settings.

New Features

  • Struct-array vector sub-field columns: Added vector-array column types for struct-array vector sub-fields: ColumnFloatVectorArray, ColumnFloat16VectorArray, ColumnBFloat16VectorArray, ColumnBinaryVectorArray, and ColumnInt8VectorArray. These support ArrayOfVector sub-fields inside struct arrays. (#49164)

  • EmbeddingList search vector types: Added entity.FloatVectorArray, entity.Float16VectorArray, entity.BFloat16VectorArray, entity.BinaryVectorArray, and entity.Int8VectorArray, dispatching them to the matching PlaceholderType_EmbList* values. This enables MAX_SIM / EmbeddingList search against struct-array vector sub-fields such as clips[clip_emb]. (#49164)

  • Struct-array insert/upsert helper: Added WithStructArrayColumn(name, structSchema, rows) to column-based insert/upsert options. The helper accepts []map[string]any row data and infers scalar/vector sub-column types from the provided struct schema. (#49164)

  • gRPC authority configuration: Added ClientConfig.WithGrpcAuthority(authority) for proxy-based routing through the gRPC :authority header. (#49186)

Bug Fixes

  • Default gRPC dial options are preserved: Client.dialOptions() now always applies DefaultGrpcOpts before user-provided DialOptions, retaining SDK defaults for keepalive, backoff, and max receive message size while still allowing caller overrides. (#49186, issue #48828)

  • Struct-array schema validation: Added Schema.Validate() and StructSchema.Validate() and wired validation into CreateCollection. Invalid struct-array sub-fields are rejected before the RPC, including nested array/struct fields, sparse vector sub-fields, duplicate sub-field names, and top-level-only flags such as primary key, partition key, clustering key, nullable, default value, dynamic, and autoID. (#49164, issue #49163)

  • Struct-array schema round trip: Schema.ReadProto() now restores StructArrayFields, and ProtoMessage() preserves max_capacity by propagating the parent setting to sub-fields when needed. Array / ArrayOfVector wrappers from the server are unwrapped back to user-facing scalar/vector sub-field types. (#49164)

  • Struct-array write correctness: columnStructArray now enforces equal lengths across sub-fields, appends a row atomically with rollback on partial sub-field failure, and serializes top-level struct-array field data as DataType_ArrayOfStruct. (#49164)

  • Vector-array response decoding: Query/search result decoding now handles DataType_ArrayOfVector, validates nil vector rows, validates payload lengths against dimension/width, rejects invalid binary vector dimensions, and preserves vector-array sub-field data in Go column types. (#49164)

  • Builder error handling: WithStructArrayColumn stores construction errors and returns them from InsertRequest / UpsertRequest instead of panicking during chained builder calls. (#49164)

Contributors

  • @zhuwenxing
  • @liliu-z
  • @milanchovatiya-boop
2026-04-16 14:23:41
milvus

milvus-2.6.15

Release note is coming soon...

2026-04-03 19:53:36
milvus

milvus-2.6.14

v2.6.14

Release date: April 7, 2026

Milvus Version Python SDK Version Node.js SDK Version Java SDK Version Go SDK Version
2.6.14 2.6.11 2.6.13 2.6.17 2.6.1

We are excited to announce the release of Milvus v2.6.14! This release focuses on stability and performance, delivering faster MixCoord recovery, optimized search and query filter performance, and over 20 bug fixes addressing crashes, OOM issues, and data correctness problems.

Improvements

  • Reduced MixCoord recovery time by parallelizing startup phases including sub-meta loading, index reload, and batch etcd operations (47849)
  • Replaced proto.Clone with shallow copy for query request fanout to reduce memory allocations and improve query performance (48083)
  • Upgraded Go to 1.25.8 to address CVE-2025-68121 (CRITICAL), CVE-2026-27142 (HIGH), and CVE-2026-25679 (HIGH) (48287)
  • Switched import retry strategy from allowlist to denylist, improving resilience against transient errors during data import (48319)
  • Made thread pool max threads size configurable via common.threadCoreCoefficient.maxThreadsSize with dynamic update support (48385)
  • Refactored import workflow to align with DDL/DCL pattern by routing through DataCoord RPC instead of cross-service broadcast (48438)
  • Added force promote support for primary-secondary disaster recovery failover via UpdateReplicateConfiguration API (48452)
  • Added data salvage capability for force failover to recover unpersisted data from failed streaming nodes (48527)
  • Improved query filter performance with type-aware bidirectional rewriting between in and == expressions (48545)
  • Optimized bool IN/NOT IN expressions with proper nullable field handling (48621)
  • Aligned error mapping across all cloud storage providers (Azure, GCP, MinIO) for consistent retry and error handling behavior (48693)
  • Optimized unfiltered search on sealed segments with MVCC fast path, hardware popcnt, and redundant bitset operation elimination (48699)

Bug fixes

  • Fixed an issue where the task scheduler could only assign one task per node per scheduling cycle, potentially slowing down index building and compaction (48262)
  • Fixed potential server crash during JSON index cleanup caused by a race condition between background threads and file deletion (48369, 48409)
  • Fixed server panic caused by concurrent map access in HTTP proxy when processing requests with timeout middleware enabled (48394)
  • Fixed OOM on QueryNodes when loading large segments with variable-size fields (ARRAY, JSON, large VARCHAR) by switching to memory-aware batch splitting (48404, 48435)
  • Fixed incorrect version string reported by Milvus when both root and Go submodule git tags exist on the same commit (48421)
  • Fixed an issue where transient storage errors during data flush and binlog import were not retried, causing unnecessary operation failures (48436)
  • Fixed a crash when using unsupported field types (JSON, Bool, Array, etc.) as clustering keys via the AddCollectionField API (48437)
  • Fixed potential crashes during index building when encountering IO errors in the Tantivy text index engine (48454)
  • Fixed an issue where QueryNodes failed to load indexes during rolling upgrades due to target vector index version exceeding the node's supported maximum (48478)
  • Fixed a potential crash caused by dangling pointers in index loading during async warmup or cache re-population (48496)
  • Fixed streaming node listing to correctly include frozen nodes in REST API while excluding them from scheduling decisions (48514)
  • Fixed an issue where data import failed or produced incorrect results when collections contained function output fields (48516)
  • Fixed loading failure for segments with default-valued GEOMETRY fields (48556, 48575)
  • Fixed an issue where all segments appeared unindexed after dropping and recreating indexes, causing stale pre-compaction segments to be loaded (48559)
  • Fixed streaming balancer hanging indefinitely due to stale session entries persisting after etcd watch reconnection (48568)
  • Fixed compaction unexpectedly producing v2 format segments when compaction parameters were missing from the request (48571, 48596)
  • Fixed GROUP BY queries returning more results than the specified group_size when used with nullable fields (48585)
  • Fixed an issue where range queries on INVERTED indexes returned incorrect results when values involved negative zero (-0.0) (48625)
  • Fixed potential heap corruption caused by dual jemalloc instances from Arrow's built-in allocator conflicting with the system allocator (48657)
  • Fixed an issue where LoadBalance could produce misleading errors when streaming node IDs collided with the specified query node IDs (48664, 48679)
  • Fixed an issue where search could still fail due to unavailable segments when partialResultRequiredDataRatio was set to 0.0 (48702)
2026-03-24 14:19:30
milvus

client/v2.6.3

New Features

  • TruncateCollection API: Added TruncateCollection method to the Go SDK client, allowing users to quickly remove all data from a collection without dropping and recreating it. Use NewTruncateCollectionOption(collectionName) to invoke. (#48361, #47308)

  • GetReplicateConfiguration API: Added GetReplicateConfiguration API for viewing replication topology (with tokens redacted) and force_promote field to UpdateReplicateConfigurationRequest. Supports strong consistency via WithFreshRead option. (#47543)

  • Nullable Pointer Fields in Row-Based API: Go pointer struct fields (*string, *int32, etc.) can now represent nullable columns in the row-based data path. A nil pointer maps to a NULL value in Milvus; a non-nil pointer dereferences to the actual value. This applies to ParseSchema, AnyToColumns, SetField, fillData, and fillPKEntry. (#48464)

  • Per-Cluster TLS Config for CDC: Added BuildTLSConfig helper and TLSConfig field to ClientConfig for mTLS support. CDC NewMilvusClient can now read per-cluster TLS config by target cluster ID via GetClusterTLSConfig(clusterID). (#48023)

Bug Fixes

  • Timestamptz field type alignment: Fixed FieldTypeTimestamptz value from 15 to 26 to match the server. Changed Timestamptz data serialization from int64 (TimestamptzData) to ISO 8601 strings (RFC3339Nano format via StringData) as expected by the server. Added NewColumnTimestamptz (accepts []time.Time), ColumnTimestampTzIsoString (direct ISO string input), and their nullable counterparts. (#47328)

Improvements

  • OpenTelemetry upgrade to v1.40.0: Bumped go.opentelemetry.io/otel and related packages from v1.34.0 to v1.40.0 to fix CWE-426 (Untrusted Search Path) vulnerability. Also bumps transitive dependencies including auto/sdk v1.1.0→v1.2.1, go-logr v1.4.2→v1.4.3, and golang.org/x/sys v0.38.0→v0.40.0. (#48059)

  • Go version upgrade to 1.24.12: Upgraded Go from 1.24.11 to 1.24.12 for CVE fixes. (#47562)

  • Proto version bumps: Updated milvus-proto/go-api/v2 through v2.6.8 → v2.6.9 → v2.6.10 → v2.6.11 → v2.6.12 → v2.6.13 across this release cycle.

Dependencies

Dependency Previous Current
milvus-proto/go-api/v2 v2.6.7 v2.6.13
go.opentelemetry.io/otel v1.34.0 v1.40.0
go-logr v1.4.2 v1.4.3
golang.org/x/sys v0.38.0 v0.40.0
Go 1.24.11 1.24.12