clear expired lease in replay dup_table lease log

This commit is contained in:
obdev
2024-02-08 11:33:51 +00:00
committed by ob-robot
parent ff255da22d
commit f1b5ef6b74

View File

@ -225,14 +225,19 @@ int ObDupTableLSLeaseMgr::deserialize_lease_log(DupTableLeaseItemArray &lease_he
} else if (OB_FAIL(lease_header_array.push_back(DupTableLeaseItem( } else if (OB_FAIL(lease_header_array.push_back(DupTableLeaseItem(
lease_log_header, leader_lease_info.confirmed_lease_info_)))) { lease_log_header, leader_lease_info.confirmed_lease_info_)))) {
DUP_TABLE_LOG(WARN, "push back leader_lease_info failed", K(ret), K(leader_lease_info)); DUP_TABLE_LOG(WARN, "push back leader_lease_info failed", K(ret), K(leader_lease_info));
} else if (OB_FALSE_IT(leader_lease_info.lease_expired_ts_ = } else {
leader_lease_info.confirmed_lease_info_.request_ts_ if (lease_header_array.count() == 1) {
+ leader_lease_info.confirmed_lease_info_.lease_interval_us_)) { //rewrite all leader lease infos on a follower by the new lease log
// do nothing leader_lease_map_.reuse();
} else if (OB_FAIL(leader_lease_map_.set_refactored(lease_log_header.get_lease_owner(), }
leader_lease_info, 1))) { leader_lease_info.lease_expired_ts_ =
DUP_TABLE_LOG(WARN, "insert into leader_lease_map_ for replay failed", K(ret), leader_lease_info.confirmed_lease_info_.request_ts_
K(lease_log_header), K(leader_lease_info)); + leader_lease_info.confirmed_lease_info_.lease_interval_us_;
if (OB_FAIL(leader_lease_map_.set_refactored(lease_log_header.get_lease_owner(),
leader_lease_info, 1))) {
DUP_TABLE_LOG(WARN, "insert into leader_lease_map_ for replay failed", K(ret),
K(lease_log_header), K(leader_lease_info));
}
} }
} }
} }
@ -757,6 +762,7 @@ bool ObDupTableLSLeaseMgr::LeaseReqCacheHandler::operator()(
item.durable_lease_.request_ts_ = hash_pair.second.cache_lease_req_.request_ts_; item.durable_lease_.request_ts_ = hash_pair.second.cache_lease_req_.request_ts_;
item.durable_lease_.lease_interval_us_ = hash_pair.second.cache_lease_req_.lease_interval_us_; item.durable_lease_.lease_interval_us_ = hash_pair.second.cache_lease_req_.lease_interval_us_;
} else if (loop_start_time_ >= hash_pair.second.lease_expired_ts_) { } else if (loop_start_time_ >= hash_pair.second.lease_expired_ts_) {
renew_lease_count_++;
DUP_TABLE_LOG(INFO, "remove expired lease follower from map", K(ret), K(will_remove), DUP_TABLE_LOG(INFO, "remove expired lease follower from map", K(ret), K(will_remove),
K(hash_pair.first), K(hash_pair.second)); K(hash_pair.first), K(hash_pair.second));
will_remove = true; will_remove = true;