aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2023-07-12 12:26:18 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2023-07-12 12:26:18 +0300
commitf27f66d3f14a5fb160298391d5ee408dd636ef93 (patch)
tree09404ed0c5f927d7db15ee41a453c70bc9727295
parentb86329276a736d2dc43e7a721fb6f0e81be17175 (diff)
downloadydb-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.cpp12
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);