Repository navigation
v0.6.0
0.6.0 is a feature release built against Milvus 3.0. Its three headline themes are a new snapshot-based backup format, a redesigned v2 configuration, and a much stricter secondary (cross-cluster) restore. It also requires Go 1.26 to build from source.
Highlights
Snapshot backup format for Milvus 3.0
Backups can now be produced as snapshot bundles: instead of copying binlogs file by file, milvus-backup asks the Milvus server to export a snapshot of each collection and records a pointer to the exported bundle in the backup meta. Restoring replays the bundle through the server's import path, keeping the server authoritative over segment layout. The snapshot path works with the MinIO/S3, GCP/gcpnative, Azure, and local-storage backends, and supports skip_params, collection description overrides, and non-binding max_shard_num on restore. (#1120, #1131, #1132, #1133, #1134, #1139, #1140, #1141, #1142, #1147, #1160, #1164, #1173, #1179, #1181, #1214)
v2 configuration
A new configVersion: v2 schema replaces the flat v1 yaml. v1 configs keep working — they are translated to v2 at load time — and milvus-backup config migrate prints the translated v2 file for you to keep. Sample configs now ship as v2, unknown v2 keys produce warnings instead of hard failures, and config show prints the effective configuration, superseding check config. (#1095, #1096, #1097, #1102, #1104, #1105, #1106, #1118, #1154, #1212, #1215)
Safer secondary restores
Restoring a backup into a different cluster is now guarded end to end: the restore refuses backups taken without --backup_index_extra or without full cluster meta, stages binlogs through Milvus storage so cross-bucket restores work, waits for each created collection to exist before importing into it, and tracks every import job from the moment it is submitted. Struct-array sub-fields and struct-level nullable flags survive the round trip. (#1077, #1168, #1175, #1177, #1185, #1188, #1192, #1193, #1195)
Breaking changes and behavior changes
- Flags deprecated in 0.5 are now rejected. Commands that printed a deprecation warning in 0.5.x now fail; remove the flags or switch to their replacements. (#1109)
autobackup format defaults to snapshot on Milvus 3.0 servers. Pass--format binlogtocreateto keep the 0.5 behavior. (#1135, #1137)- External collections are skipped during backup instead of failing or being half-copied. (#1123)
check configis deprecated in favor ofconfig show. (#1098)- Building from source now requires Go 1.26. (#1081)
Other features and fixes
- Add the
l0compactcommand to fold backup L0 segments into per-segment deltalogs (#1074, #1128) create --forpurpose presets: secondary, archive, clone (#1222)- Make the segments merged into one import job configurable (#1117)
- Print the effective config before connecting in
check, and log the resolved transfer mode when a task starts (#1060, #1108) - Record async backup initialization failures instead of losing them (#1189)
- Detect the server version from every string milvus reports (#1116)
- Say which collections a skipped dynamic field task leaves incomplete (#1190)
- Probe etcd at task start and bound every etcd read (#1218)
- Read azure objects via download stream, stop goroutines spawned by prefix operations on exit, and abort multipart uploads on a detached context (#1093, #1150, #1151)
- Treat an empty CopyObject ETag as a failed copy (#1220)
- Write the bootstrap logger to stderr and drop the unused log rate limiter (#1111, #1112)
Internal refactoring, test, CI, and dependency changes are omitted here — see the full changelog below.
New Contributors
- @czs007 made their first contribution in #1168
- @bigsheeper made their first contribution in #1074
Full Changelog: v0.5.16...v0.6.0