This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 76c7bf0785a [bugfix](loadmem) load memory is too small because flush
memory is not right (#40696) (#40884)
76c7bf0785a is described below
commit 76c7bf0785a96902924d2f8b58c60e77d4ac38c7
Author: yiguolei <[email protected]>
AuthorDate: Mon Sep 16 12:25:30 2024 +0800
[bugfix](loadmem) load memory is too small because flush memory is not
right (#40696) (#40884)
---
be/src/olap/memtable_flush_executor.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/be/src/olap/memtable_flush_executor.cpp
b/be/src/olap/memtable_flush_executor.cpp
index cf96d5f46a5..704e8b280bc 100644
--- a/be/src/olap/memtable_flush_executor.cpp
+++ b/be/src/olap/memtable_flush_executor.cpp
@@ -142,9 +142,12 @@ Status FlushToken::_do_flush_memtable(MemTable* memtable,
int32_t segment_id, in
signal::set_signal_task_id(_rowset_writer->load_id());
signal::tablet_id = memtable->tablet_id();
{
- SCOPED_CONSUME_MEM_TRACKER(memtable->flush_mem_tracker());
std::unique_ptr<vectorized::Block> block;
+ // During to block method, it will release old memory and create new
block, so that
+ // we could not scoped it.
RETURN_IF_ERROR(memtable->to_block(&block));
+ memtable->flush_mem_tracker()->consume(block->allocated_bytes());
+ SCOPED_CONSUME_MEM_TRACKER(memtable->flush_mem_tracker());
RETURN_IF_ERROR(_rowset_writer->flush_memtable(block.get(),
segment_id, flush_size));
}
_memtable_stat += memtable->stat();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]