You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/02/22 12:26:12 UTC

[doris] 01/04: [improvement](MOW) use shared_lock when get load info in publish txn (#16874)

This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 62305a6ddc0a3cb192b9bc456851c34b23eeb068
Author: yixiutt <10...@users.noreply.github.com>
AuthorDate: Tue Feb 21 10:14:40 2023 +0800

    [improvement](MOW) use shared_lock when get load info in publish txn (#16874)
---
 be/src/olap/task/engine_publish_version_task.cpp | 8 +++-----
 be/src/olap/txn_manager.cpp                      | 4 ++--
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/be/src/olap/task/engine_publish_version_task.cpp b/be/src/olap/task/engine_publish_version_task.cpp
index f937645c0a..4e786a0455 100644
--- a/be/src/olap/task/engine_publish_version_task.cpp
+++ b/be/src/olap/task/engine_publish_version_task.cpp
@@ -181,11 +181,9 @@ Status EnginePublishVersionTask::finish() {
         }
     }
 
-    VLOG_CRITICAL << "finish to publish version on transaction."
-                  << "transaction_id=" << transaction_id
-                  << ", cost(us): " << watch.get_elapse_time_us()
-                  << ", error_tablet_size=" << _error_tablet_ids->size()
-                  << ", res=" << res.to_string();
+    LOG(INFO) << "finish to publish version on transaction."
+              << "transaction_id=" << transaction_id << ", cost(us): " << watch.get_elapse_time_us()
+              << ", error_tablet_size=" << _error_tablet_ids->size() << ", res=" << res.to_string();
     return res;
 }
 
diff --git a/be/src/olap/txn_manager.cpp b/be/src/olap/txn_manager.cpp
index ad652e31ad..5661804a92 100644
--- a/be/src/olap/txn_manager.cpp
+++ b/be/src/olap/txn_manager.cpp
@@ -291,9 +291,9 @@ Status TxnManager::publish_txn(OlapMeta* meta, TPartitionId partition_id,
     RowsetSharedPtr rowset_ptr = nullptr;
     TabletTxnInfo* load_info = nullptr;
     {
-        std::unique_lock<std::mutex> txn_lock(_get_txn_lock(transaction_id));
         {
-            std::shared_lock rlock(_get_txn_map_lock(transaction_id));
+            std::unique_lock<std::mutex> txn_rlock(_get_txn_lock(transaction_id));
+            std::shared_lock txn_map_rlock(_get_txn_map_lock(transaction_id));
             txn_tablet_map_t& txn_tablet_map = _get_txn_tablet_map(transaction_id);
             auto it = txn_tablet_map.find(key);
             if (it != txn_tablet_map.end()) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org