Skip to content

Commit d780aef

Browse files
visualYJDrock-git
authored andcommitted
[fix][store] Optimize CheckLockConflict
1 parent b7e7148 commit d780aef

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

src/engine/txn_engine_helper.cc

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)