@@ -893,6 +893,14 @@ bool TxnEngineHelper::CheckLockConflict(const pb::store::LockInfo &lock_info, pb
893893 << " is resolved, return false" ;
894894 return false ;
895895 }
896+ // Ignore lock when min_commit_ts > ts
897+ if (lock_info.min_commit_ts () > start_ts) {
898+ DINGO_LOG_IF (INFO, FLAGS_dingo_log_switch_txn_detail)
899+ << " [txn]CheckLockConflict lock_info: " << lock_info.ShortDebugString ()
900+ << " , isolation_level: " << isolation_level << " , start_ts: " << start_ts
901+ << " , min_commit_ts: " << lock_info.lock_ts () << " ignore lock when min_commit_ts > ts" ;
902+ return false ;
903+ }
896904
897905 if (lock_info.lock_ts () > 0 ) {
898906 if (isolation_level == pb::store::IsolationLevel::SnapshotIsolation) {
@@ -941,17 +949,6 @@ bool TxnEngineHelper::CheckLockConflict(const pb::store::LockInfo &lock_info, pb
941949 return true ;
942950 }
943951 return false ;
944-
945- } else {
946- if (lock_info.lock_ts () < start_ts) {
947- DINGO_LOG_IF (INFO, FLAGS_dingo_log_switch_txn_detail)
948- << " [txn]CheckLockConflict RC lock_info.for_update_ts() == 0, it's conflict, lock_info: "
949- << lock_info.ShortDebugString () << " , start_ts: " << start_ts;
950- // lock_ts < start_ts, return lock_info
951- *(txn_result_info.mutable_locked ()) = lock_info;
952- return true ;
953- }
954- return false ;
955952 }
956953 } else {
957954 DINGO_LOG (FATAL) << " [txn]CheckLockConflict invalid isolation_level: " << isolation_level;
0 commit comments