milvus-io/milvus • PR #53322Score: 9/10
enhance: add segment change group staging base
Language: Go+4278 -10feature
concepts demonstrated
Struct types and methodsTransactional persistence with etcdState machine implementationAtomic batch updates
The Issue & Context
Previously, batch segment changes like import or compaction published outputs individually per segment, causing partial visibility and complex lineage fallback logic in views.
Root Cause Analysis
Segment changes were published member-by-member without an atomic grouping, leading to inconsistent views and reliance on fallback to superseded parent segments.
Solution Strategy & Architectural Pattern
Implemented a SegmentChangeGroup model with etcd persistence and a DataCoord meta-layer state machine to stage segment changes atomically, flipping entire groups to READY and committing them in a single catalog transaction.
Key Takeaway for Contributors
Atomic grouping of segment changes simplifies visibility guarantees, eliminates lineage fallback, and provides a foundation for consistent, recoverable batch segment operations.