mirror of
https://github.com/milvus-io/milvus.git
synced 2026-07-21 10:15:43 +00:00
issue: #49706 issue: #50663 ## What This PR fixes StorageV3 compaction fallback loading when delete records are stored in compact-to child manifests instead of legacy deltalogs. Changes: - Add `child_manifest_paths` to DataCoord `SegmentInfo` and QueryCoord `SegmentLoadInfo` as a load-time delete overlay. - Make DataCoord recursively collect compact-to descendant delete sources for cloned unhealthy segment responses. - Keep legacy child delete logs in `Deltalogs`, and keep StorageV3 child delete logs as `ChildManifestPaths`. - Pass `ChildManifestPaths` through QueryCoord to QueryNode. - Make QueryNode load parent delete data and child manifest delete data into one `DeltaData` before calling `LoadDeltaData`. ## Why Fallback loading keeps the parent segment identity, but StorageV3 compact-to children may keep newer delete records only in their manifests. The old fallback path only appended legacy child deltalogs, so it could miss V3 child deletes and expose rows that should be filtered. The V2 path is kept for compatibility. Mixed chains such as parent V2 to child V3, and parent V3 to child V2, are handled by keeping each child delete source in its native representation. ## Validation - `gofmt -w internal/datacoord/services.go internal/querycoordv2/utils/types.go internal/querynodev2/segments/segment_loader.go` - `git diff --check` - `source ~/.profile && source scripts/setenv.sh && make generated-proto-without-cpp` - `git diff --exit-code -- pkg/proto/data_coord.proto pkg/proto/query_coord.proto pkg/proto/datapb/data_coord.pb.go pkg/proto/querypb/query_coord.pb.go` Blocked: - `make check-proto-product`: conan could not resolve `milvus01.jfrog.io`. - Go tests were not rerun after review cleanup because `reset-milvus` is blocked by missing `bin/milvus`; an earlier attempt was blocked by missing `milvus_core` pkg-config. Signed-off-by: Wei Liu <wei.liu@zilliz.com>