enhance: Reserve builder space for ValueSerializer (#43570)

Add `arrowBuild.Reserve` call for `ValueSerializer` to reduce repeated
resizing buffer when write size is large

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
congqixia 2025-07-28 11:02:55 +08:00 committed by GitHub
parent 10ec3ce2bf
commit 34d3f0c0f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -497,6 +497,7 @@ func ValueSerializer(v []*Value, schema *schemapb.CollectionSchema) (Record, err
for _, f := range allFieldsSchema {
dim, _ := typeutil.GetDim(f)
builders[f.FieldID] = array.NewBuilder(memory.DefaultAllocator, serdeMap[f.DataType].arrowType(int(dim)))
builders[f.FieldID].Reserve(len(v)) // reserve space to avoid copy
types[f.FieldID] = f.DataType
}