From b87846b08bb3d9d81c9b1d642d704a3193f0b8ed Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Tue, 16 Jul 2024 17:56:50 +0800 Subject: [PATCH 1/2] [fix](load) change tablet schema pointer to shared_ptr in memtable --- be/src/olap/base_tablet.cpp | 2 +- be/src/olap/memtable.cpp | 2 +- be/src/olap/memtable.h | 8 ++++---- be/src/olap/memtable_writer.cpp | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/be/src/olap/base_tablet.cpp b/be/src/olap/base_tablet.cpp index a396f4750b202d..71ece1599d6950 100644 --- a/be/src/olap/base_tablet.cpp +++ b/be/src/olap/base_tablet.cpp @@ -830,7 +830,7 @@ Status BaseTablet::sort_block(vectorized::Block& in_block, vectorized::Block& ou vectorized::MutableBlock::build_mutable_block(&output_block); std::shared_ptr vec_row_comparator = - std::make_shared(_tablet_meta->tablet_schema().get()); + std::make_shared(_tablet_meta->tablet_schema()); vec_row_comparator->set_block(&mutable_input_block); std::vector> row_in_blocks; diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp index e55fd678bd21bc..74bd49a2bc4ef1 100644 --- a/be/src/olap/memtable.cpp +++ b/be/src/olap/memtable.cpp @@ -48,7 +48,7 @@ bvar::Adder g_memtable_input_block_allocated_size("memtable_input_block using namespace ErrorCode; -MemTable::MemTable(int64_t tablet_id, const TabletSchema* tablet_schema, +MemTable::MemTable(int64_t tablet_id, std::shared_ptr tablet_schema, const std::vector* slot_descs, TupleDescriptor* tuple_desc, bool enable_unique_key_mow, PartialUpdateInfo* partial_update_info, const std::shared_ptr& insert_mem_tracker, diff --git a/be/src/olap/memtable.h b/be/src/olap/memtable.h index d2dfafd972a20d..77e86387abf786 100644 --- a/be/src/olap/memtable.h +++ b/be/src/olap/memtable.h @@ -129,7 +129,7 @@ class Tie { class RowInBlockComparator { public: - RowInBlockComparator(const TabletSchema* tablet_schema) : _tablet_schema(tablet_schema) {} + RowInBlockComparator(std::shared_ptr tablet_schema) : _tablet_schema(tablet_schema) {} // call set_block before operator(). // only first time insert block to create _input_mutable_block, // so can not Comparator of construct to set pblock @@ -137,7 +137,7 @@ class RowInBlockComparator { int operator()(const RowInBlock* left, const RowInBlock* right) const; private: - const TabletSchema* _tablet_schema = nullptr; + std::shared_ptr _tablet_schema; vectorized::MutableBlock* _pblock = nullptr; // corresponds to Memtable::_input_mutable_block }; @@ -168,7 +168,7 @@ class MemTableStat { class MemTable { public: - MemTable(int64_t tablet_id, const TabletSchema* tablet_schema, + MemTable(int64_t tablet_id, std::shared_ptr tablet_schema, const std::vector* slot_descs, TupleDescriptor* tuple_desc, bool enable_unique_key_mow, PartialUpdateInfo* partial_update_info, const std::shared_ptr& insert_mem_tracker, @@ -209,7 +209,7 @@ class MemTable { bool _enable_unique_key_mow = false; bool _is_partial_update = false; const KeysType _keys_type; - const TabletSchema* _tablet_schema = nullptr; + std::shared_ptr _tablet_schema; std::shared_ptr _vec_row_comparator; diff --git a/be/src/olap/memtable_writer.cpp b/be/src/olap/memtable_writer.cpp index 13bbff325394a3..80da6bb3991b61 100644 --- a/be/src/olap/memtable_writer.cpp +++ b/be/src/olap/memtable_writer.cpp @@ -213,7 +213,7 @@ void MemTableWriter::_reset_mem_table() { } { std::lock_guard l(_mem_table_ptr_lock); - _mem_table.reset(new MemTable(_req.tablet_id, _tablet_schema.get(), _req.slots, + _mem_table.reset(new MemTable(_req.tablet_id, _tablet_schema, _req.slots, _req.tuple_desc, _unique_key_mow, _partial_update_info.get(), mem_table_insert_tracker, mem_table_flush_tracker)); } From 0e37fd5de6f50d64e37c6b0afeb6245f5f2cf209 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Tue, 16 Jul 2024 20:00:22 +0800 Subject: [PATCH 2/2] fix format --- be/src/olap/memtable.h | 3 ++- be/src/olap/memtable_writer.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/be/src/olap/memtable.h b/be/src/olap/memtable.h index 77e86387abf786..916067ba1193d2 100644 --- a/be/src/olap/memtable.h +++ b/be/src/olap/memtable.h @@ -129,7 +129,8 @@ class Tie { class RowInBlockComparator { public: - RowInBlockComparator(std::shared_ptr tablet_schema) : _tablet_schema(tablet_schema) {} + RowInBlockComparator(std::shared_ptr tablet_schema) + : _tablet_schema(tablet_schema) {} // call set_block before operator(). // only first time insert block to create _input_mutable_block, // so can not Comparator of construct to set pblock diff --git a/be/src/olap/memtable_writer.cpp b/be/src/olap/memtable_writer.cpp index 80da6bb3991b61..ff5647714680ad 100644 --- a/be/src/olap/memtable_writer.cpp +++ b/be/src/olap/memtable_writer.cpp @@ -213,8 +213,8 @@ void MemTableWriter::_reset_mem_table() { } { std::lock_guard l(_mem_table_ptr_lock); - _mem_table.reset(new MemTable(_req.tablet_id, _tablet_schema, _req.slots, - _req.tuple_desc, _unique_key_mow, _partial_update_info.get(), + _mem_table.reset(new MemTable(_req.tablet_id, _tablet_schema, _req.slots, _req.tuple_desc, + _unique_key_mow, _partial_update_info.get(), mem_table_insert_tracker, mem_table_flush_tracker)); }