mirror of https://github.com/milvus-io/milvus.git
enhance: Optimize grow slice cost during query (#34254)
issue: #32252 pr: #34253 This PR try to pre-allocate FieldData for Reduce operations in the Query chain using typeutil.PrepareResultFieldData to avoid the overhead of dynamically growing the slice during appendFieldData process. --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com>pull/34302/head
parent
06d9d258c4
commit
c344083f22
|
@ -603,7 +603,6 @@ func reduceRetrieveResults(ctx context.Context, retrieveResults []*internalpb.Re
|
|||
return ret, nil
|
||||
}
|
||||
|
||||
ret.FieldsData = make([]*schemapb.FieldData, len(validRetrieveResults[0].GetFieldsData()))
|
||||
idSet := make(map[interface{}]struct{})
|
||||
cursors := make([]int64, len(validRetrieveResults))
|
||||
|
||||
|
@ -626,6 +625,7 @@ func reduceRetrieveResults(ctx context.Context, retrieveResults []*internalpb.Re
|
|||
}
|
||||
}
|
||||
|
||||
ret.FieldsData = typeutil.PrepareResultFieldData(validRetrieveResults[0].GetFieldsData(), int64(loopEnd))
|
||||
var retSize int64
|
||||
maxOutputSize := paramtable.Get().QuotaConfig.MaxOutputSize.GetAsInt64()
|
||||
for j := 0; j < loopEnd; {
|
||||
|
|
|
@ -427,7 +427,7 @@ func MergeInternalRetrieveResult(ctx context.Context, retrieveResults []*interna
|
|||
loopEnd = int(param.limit)
|
||||
}
|
||||
|
||||
ret.FieldsData = make([]*schemapb.FieldData, len(validRetrieveResults[0].Result.GetFieldsData()))
|
||||
ret.FieldsData = typeutil.PrepareResultFieldData(validRetrieveResults[0].Result.GetFieldsData(), int64(loopEnd))
|
||||
idTsMap := make(map[interface{}]int64)
|
||||
cursors := make([]int64, len(validRetrieveResults))
|
||||
|
||||
|
@ -556,6 +556,7 @@ func MergeSegcoreRetrieveResults(ctx context.Context, retrieveResults []*segcore
|
|||
limit = int(param.limit)
|
||||
}
|
||||
|
||||
ret.FieldsData = typeutil.PrepareResultFieldData(validRetrieveResults[0].Result.GetFieldsData(), int64(loopEnd))
|
||||
cursors := make([]int64, len(validRetrieveResults))
|
||||
idTsMap := make(map[any]int64)
|
||||
|
||||
|
|
Loading…
Reference in New Issue