This is an automated email from the ASF dual-hosted git repository. kangkaisen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push: new 67b0da5 Fix rowset_meta race condition for commit_txn in TxnManager (#3330) 67b0da5 is described below commit 67b0da5652adea3c00fb03f1ea4b931713a1062b Author: caiconghui <55968745+caicong...@users.noreply.github.com> AuthorDate: Sat Apr 18 05:38:48 2020 -0500 Fix rowset_meta race condition for commit_txn in TxnManager (#3330) --- be/src/common/config.h | 2 +- be/src/olap/txn_manager.cpp | 1 + be/src/olap/txn_manager.h | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/be/src/common/config.h b/be/src/common/config.h index 9b06918..dbd9f53 100644 --- a/be/src/common/config.h +++ b/be/src/common/config.h @@ -506,7 +506,7 @@ namespace config { CONF_Int32(txn_map_shard_size, "128"); // txn_lock shard size, the value is 2^n, n=0,1,2,3,4 - // this is a an enhancement for better performance to publish txn + // this is a an enhancement for better performance to commit and publish txn CONF_Int32(txn_shard_size, "1024") } // namespace config diff --git a/be/src/olap/txn_manager.cpp b/be/src/olap/txn_manager.cpp index 8fdec4d..35b3633 100755 --- a/be/src/olap/txn_manager.cpp +++ b/be/src/olap/txn_manager.cpp @@ -185,6 +185,7 @@ OLAPStatus TxnManager::commit_txn( return OLAP_ERR_ROWSET_INVALID; } + MutexLock txn_lock(&_get_txn_lock(transaction_id)); { // get tx ReadLock rdlock(&_get_txn_map_lock(transaction_id)); diff --git a/be/src/olap/txn_manager.h b/be/src/olap/txn_manager.h index 75ad152..d16e453 100755 --- a/be/src/olap/txn_manager.h +++ b/be/src/olap/txn_manager.h @@ -183,16 +183,16 @@ private: const int32_t _txn_shard_size; // _txn_map_locks[i] protect _txn_tablet_maps[i], i=0,1,2...,and i < _txn_map_shard_size - txn_tablet_map_t *_txn_tablet_maps; + txn_tablet_map_t* _txn_tablet_maps; // transaction_id -> corresponding partition ids // This is mainly for the clear txn task received from FE, which may only has transaction id, // so we need this map to find out which partitions are corresponding to a transaction id. // The _txn_partition_maps[i] should be constructed/deconstructed/modified alongside with '_txn_tablet_maps[i]' - txn_partition_map_t *_txn_partition_maps; + txn_partition_map_t* _txn_partition_maps; - RWMutex *_txn_map_locks; + RWMutex* _txn_map_locks; - Mutex *_txn_mutex; + Mutex* _txn_mutex; DISALLOW_COPY_AND_ASSIGN(TxnManager); }; // TxnManager --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org