Fix load segment request too large (#10812)

Signed-off-by: xige-16 <xi.ge@zilliz.com>
pull/10825/head
xige-16 2021-10-28 17:26:28 +08:00 committed by GitHub
parent 92dfacc2d7
commit 6d43ac4a6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View File

@ -1934,7 +1934,7 @@ func assignInternalTask(ctx context.Context,
node2Segments[nodeID] = append(node2Segments[nodeID], loadSegmentRequests[index])
sizeCounts[nodeID] = sizeOfReq
} else {
if sizeCounts[nodeID]+sizeOfReq > 2097152 {
if sizeCounts[nodeID]+sizeOfReq > MaxSendSizeToEtcd {
node2Segments[nodeID] = append(node2Segments[nodeID], loadSegmentRequests[index])
sizeCounts[nodeID] = sizeOfReq
} else {

View File

@ -457,6 +457,18 @@ func (scheduler *TaskScheduler) processTask(t task) error {
}
childTask.setTaskID(id)
childTaskKey := fmt.Sprintf("%s/%d", activeTaskPrefix, childTask.getTaskID())
var protoSize int
switch childTask.msgType() {
case commonpb.MsgType_LoadSegments:
protoSize = proto.Size(childTask.(*loadSegmentTask).LoadSegmentsRequest)
case commonpb.MsgType_WatchDmChannels:
protoSize = proto.Size(childTask.(*watchDmChannelTask).WatchDmChannelsRequest)
case commonpb.MsgType_WatchQueryChannels:
protoSize = proto.Size(childTask.(*watchQueryChannelTask).AddQueryChannelRequest)
default:
//TODO::
}
log.Debug("updateKVFn: the size of internal request", zap.Int("size", protoSize), zap.Int64("taskID", childTask.getTaskID()))
blobs, err := childTask.marshal()
if err != nil {
return err