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

Reply via email to