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
commit 9eeb7dc9e40db981c49b6f399a679a015c2875d9 Author: Jack Drogon <jack.xsuper...@gmail.com> AuthorDate: Wed Jan 31 13:29:24 2024 +0800 Refactor MemTableFlushExecutor::create_flush_token to improve (#30554) readability && Add default type guard Signed-off-by: Jack Drogon <jack.xsuper...@gmail.com> --- be/src/olap/memtable_flush_executor.cpp | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/be/src/olap/memtable_flush_executor.cpp b/be/src/olap/memtable_flush_executor.cpp index 60ef194aae5..e1fa68a6a53 100644 --- a/be/src/olap/memtable_flush_executor.cpp +++ b/be/src/olap/memtable_flush_executor.cpp @@ -222,27 +222,20 @@ void MemTableFlushExecutor::init(const std::vector<DataDir*>& data_dirs) { Status MemTableFlushExecutor::create_flush_token(std::unique_ptr<FlushToken>& flush_token, RowsetWriter* rowset_writer, bool is_high_priority) { - if (!is_high_priority) { - if (rowset_writer->type() == BETA_ROWSET) { - // beta rowset can be flush in CONCURRENT, because each memtable using a new segment writer. - flush_token = std::make_unique<FlushToken>(_flush_pool.get()); - } else { - // alpha rowset do not support flush in CONCURRENT. - // and not support alpha rowset now. - return Status::InternalError<false>("not support alpha rowset load now."); - } - } else { - if (rowset_writer->type() == BETA_ROWSET) { - // beta rowset can be flush in CONCURRENT, because each memtable using a new segment writer. - flush_token = std::make_unique<FlushToken>(_high_prio_flush_pool.get()); - } else { - // alpha rowset do not support flush in CONCURRENT. - // and not support alpha rowset now. - return Status::InternalError<false>("not support alpha rowset load now."); - } + switch (rowset_writer->type()) { + case ALPHA_ROWSET: + // alpha rowset do not support flush in CONCURRENT. and not support alpha rowset now. + return Status::InternalError<false>("not support alpha rowset load now."); + case BETA_ROWSET: { + // beta rowset can be flush in CONCURRENT, because each memtable using a new segment writer. + ThreadPool* pool = is_high_priority ? _high_prio_flush_pool.get() : _flush_pool.get(); + flush_token = std::make_unique<FlushToken>(pool); + flush_token->set_rowset_writer(rowset_writer); + return Status::OK(); + } + default: + return Status::InternalError<false>("unknown rowset type."); } - flush_token->set_rowset_writer(rowset_writer); - return Status::OK(); } void MemTableFlushExecutor::_register_metrics() { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org