From 4522aeb74aa68fc4e17ac15cfac92edb52c3f90e Mon Sep 17 00:00:00 2001 From: yixiutt <102007456+yixiutt@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:14:40 +0800 Subject: [PATCH] [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 544dc44e45..0422912944 100644 --- a/be/src/olap/task/engine_publish_version_task.cpp +++ b/be/src/olap/task/engine_publish_version_task.cpp @@ -183,11 +183,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 3907d7ed12..9e80855bd3 100644 --- a/be/src/olap/txn_manager.cpp +++ b/be/src/olap/txn_manager.cpp @@ -292,9 +292,9 @@ Status TxnManager::publish_txn(OlapMeta* meta, TPartitionId partition_id, RowsetSharedPtr rowset_ptr = nullptr; TabletTxnInfo* load_info = nullptr; { - std::unique_lock txn_lock(_get_txn_lock(transaction_id)); { - std::shared_lock rlock(_get_txn_map_lock(transaction_id)); + std::unique_lock 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()) {