mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
enhance: [StorageV2] Release record and close reader (#42983)
Related to #39173 This PR - Close packed reader after sort - Release arrow.Record preventing memory leakage - Invoke `pack_reader->Close()` for CloseReader --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
238bd30f42
commit
9b06ecb72f
@ -138,6 +138,7 @@ CloseReader(CPackedReader c_packed_reader) {
|
|||||||
auto packed_reader =
|
auto packed_reader =
|
||||||
static_cast<milvus_storage::PackedRecordBatchReader*>(
|
static_cast<milvus_storage::PackedRecordBatchReader*>(
|
||||||
c_packed_reader);
|
c_packed_reader);
|
||||||
|
packed_reader->Close();
|
||||||
delete packed_reader;
|
delete packed_reader;
|
||||||
return milvus::SuccessCStatus();
|
return milvus::SuccessCStatus();
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
|
|||||||
@ -242,6 +242,7 @@ func (st *statsTask) sort(ctx context.Context) ([]*datapb.FieldBinlog, error) {
|
|||||||
log.Warn("error creating insert binlog reader", zap.Error(err))
|
log.Warn("error creating insert binlog reader", zap.Error(err))
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer rr.Close()
|
||||||
|
|
||||||
rrs := []storage.RecordReader{rr}
|
rrs := []storage.RecordReader{rr}
|
||||||
numValidRows, err := storage.Sort(st.req.GetBinlogMaxSize(), st.req.GetSchema(), rrs, srw, predicate)
|
numValidRows, err := storage.Sort(st.req.GetBinlogMaxSize(), st.req.GetSchema(), rrs, srw, predicate)
|
||||||
|
|||||||
@ -68,6 +68,13 @@ func Sort(batchSize uint64, schema *schemapb.CollectionSchema, rr []RecordReader
|
|||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// release cgo records
|
||||||
|
defer func() {
|
||||||
|
for _, rec := range records {
|
||||||
|
rec.Release()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
pkField, err := typeutil.GetPrimaryFieldSchema(schema)
|
pkField, err := typeutil.GetPrimaryFieldSchema(schema)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user