diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-07-12 12:26:18 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-07-12 12:26:18 +0300 |
commit | f27f66d3f14a5fb160298391d5ee408dd636ef93 (patch) | |
tree | 09404ed0c5f927d7db15ee41a453c70bc9727295 | |
parent | b86329276a736d2dc43e7a721fb6f0e81be17175 (diff) | |
download | ydb-f27f66d3f14a5fb160298391d5ee408dd636ef93.tar.gz |
KIKIMR-18453:prevent useless memory free after pk_sorted early batches cleaning optimization
-rw-r--r-- | ydb/core/tx/columnshard/engines/reader/granule.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ydb/core/tx/columnshard/engines/reader/granule.cpp b/ydb/core/tx/columnshard/engines/reader/granule.cpp index a6864ecb20..f46d8aabe6 100644 --- a/ydb/core/tx/columnshard/engines/reader/granule.cpp +++ b/ydb/core/tx/columnshard/engines/reader/granule.cpp @@ -8,16 +8,18 @@ namespace NKikimr::NOlap::NIndexedReader { void TGranule::OnBatchReady(const TBatch& batchInfo, std::shared_ptr<arrow::RecordBatch> batch) { - GranuleDataSize.Take(batchInfo.GetRealBatchSizeVerified()); - GranuleDataSize.Free(batchInfo.GetPredictedBatchSize()); - RawDataSizeReal += batchInfo.GetRealBatchSizeVerified(); if (Owner->GetSortingPolicy()->CanInterrupt() && ReadyFlag) { return; } - AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_batch")("granule_id", GranuleId) - ("batch_address", batchInfo.GetBatchAddress().ToString())("count", WaitBatches.size()); Y_VERIFY(!ReadyFlag); Y_VERIFY(WaitBatches.erase(batchInfo.GetBatchAddress().GetBatchGranuleIdx())); + if (InConstruction) { + GranuleDataSize.Take(batchInfo.GetRealBatchSizeVerified()); + GranuleDataSize.Free(batchInfo.GetPredictedBatchSize()); + RawDataSizeReal += batchInfo.GetRealBatchSizeVerified(); + } + AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_batch")("granule_id", GranuleId) + ("batch_address", batchInfo.GetBatchAddress().ToString())("count", WaitBatches.size())("in_construction", InConstruction); if (batch && batch->num_rows()) { RecordBatches.emplace_back(batch); |