From a4d78682ff650e6ea5086357e708bb8a3e70e109 Mon Sep 17 00:00:00 2001 From: lihangyu <15605149486@163.com> Date: Fri, 17 Nov 2023 10:18:21 +0800 Subject: [PATCH] [Optimize](point query) clear names to reduce mem consumption and cpu cost related to block column name (#26931) --- be/src/service/point_query_executor.cpp | 3 ++- be/src/vec/core/block.cpp | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/be/src/service/point_query_executor.cpp b/be/src/service/point_query_executor.cpp index 580e0b66df..12e1f9f677 100644 --- a/be/src/service/point_query_executor.cpp +++ b/be/src/service/point_query_executor.cpp @@ -48,7 +48,7 @@ namespace doris { Reusable::~Reusable() {} -constexpr static int s_preallocted_blocks_num = 64; +constexpr static int s_preallocted_blocks_num = 32; Status Reusable::init(const TDescriptorTable& t_desc_tbl, const std::vector& output_exprs, size_t block_size) { SCOPED_MEM_COUNT_BY_HOOK(&_mem_size); @@ -334,6 +334,7 @@ Status PointQueryExecutor::_lookup_row_data() { template Status _serialize_block(MysqlWriter& mysql_writer, vectorized::Block& block, PTabletKeyLookupResponse* response) { + block.clear_names(); RETURN_IF_ERROR(mysql_writer.append_block(block)); assert(mysql_writer.results().size() == 1); uint8_t* buf = nullptr; diff --git a/be/src/vec/core/block.cpp b/be/src/vec/core/block.cpp index 5f1dc7f512..779f214c97 100644 --- a/be/src/vec/core/block.cpp +++ b/be/src/vec/core/block.cpp @@ -178,6 +178,9 @@ void Block::insert(size_t position, ColumnWithTypeAndName&& elem) { void Block::clear_names() { index_by_name.clear(); + for (auto& entry : data) { + entry.name.clear(); + } } void Block::insert(const ColumnWithTypeAndName& elem) {