mirror of
https://github.com/milvus-io/milvus.git
synced 2026-07-21 10:15:43 +00:00
issue: #45881 ## What this PR does External refresh previously read the segment row target directly from each DataNode configuration during execution. That made the worker input implicit and allowed task behavior to depend on the selected node. This change: - keeps `dataNode.externalCollection.targetRowsPerSegment` as the existing configuration source; - has DataCoord snapshot the configured value into the refresh task request; - adds `target_rows_per_segment` to the DataCoord-to-DataNode request; - validates the transmitted value in DataNode; - uses the request value for fragment splitting and segment balancing; - preserves the MilvusTable one-fragment-per-segment behavior. ## Validation - `make generated-proto-without-cpp` - `make lint-fix` - `make build-go` - `go test -gcflags="all=-N -l" -race -tags dynamic,test github.com/milvus-io/milvus/pkg/v3/util/paramtable -failfast -count=1 -ldflags="-r ${RPATH}" -run "^TestCachedParam$" -v` - `go test -gcflags="all=-N -l" -race -coverprofile=/tmp/refine-rowcount-config-dc.out -tags dynamic,test github.com/milvus-io/milvus/internal/datacoord -failfast -count=1 -ldflags="-r ${RPATH}" -run "^TestRefreshExternalCollectionTask_CreateTaskOnWorker$" -v` - `go test -gcflags="all=-N -l" -race -coverprofile=/tmp/refine-rowcount-config-dn.out -tags dynamic,test github.com/milvus-io/milvus/internal/datanode/external -failfast -count=1 -ldflags="-r ${RPATH}" -run "^TestRefreshExternalCollectionTaskSuite$" -v` - `git diff --check` Signed-off-by: Wei Liu <wei.liu@zilliz.com>