trans table no need get multi trans version start
This commit is contained in:
@ -3189,16 +3189,20 @@ int ObPartitionStore::get_kept_multi_version_start(
|
|||||||
if (OB_UNLIKELY(!is_inited_)) {
|
if (OB_UNLIKELY(!is_inited_)) {
|
||||||
ret = OB_NOT_INIT;
|
ret = OB_NOT_INIT;
|
||||||
STORAGE_LOG(WARN, "not inited", K(ret));
|
STORAGE_LOG(WARN, "not inited", K(ret));
|
||||||
} else if (OB_FAIL(get_last_major_sstable(pkey_.get_table_id(), handle))) {
|
} else if (pkey_.is_trans_table()) {
|
||||||
if (OB_ENTRY_NOT_EXIST != ret) {
|
// trans table no need deal with multi version start or
|
||||||
LOG_WARN("failed to get last major sstable", K(ret), K_(pkey));
|
// backup snapshot version
|
||||||
} else {
|
multi_version_start = 1;
|
||||||
ret = OB_SUCCESS;
|
} else {
|
||||||
|
if (OB_FAIL(get_last_major_sstable(pkey_.get_table_id(), handle))) {
|
||||||
|
if (OB_ENTRY_NOT_EXIST != ret) {
|
||||||
|
LOG_WARN("failed to get last major sstable", K(ret), K_(pkey));
|
||||||
|
} else {
|
||||||
|
ret = OB_SUCCESS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
{
|
|
||||||
TCRLockGuard lock_guard(lock_);
|
TCRLockGuard lock_guard(lock_);
|
||||||
if (OB_FAIL(get_min_merged_version_(min_merged_version))) {
|
if (OB_FAIL(get_min_merged_version_(min_merged_version))) {
|
||||||
LOG_WARN("failed to get_min_merged_version_", K(ret));
|
LOG_WARN("failed to get_min_merged_version_", K(ret));
|
||||||
@ -3213,17 +3217,16 @@ int ObPartitionStore::get_kept_multi_version_start(
|
|||||||
LOG_WARN("failed to get_kept_multi_version_start", K(ret), K(pkey_));
|
LOG_WARN("failed to get_kept_multi_version_start", K(ret), K(pkey_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
multi_version_start = min_reserved_snapshot;
|
multi_version_start = min_reserved_snapshot;
|
||||||
|
|
||||||
if (OB_SUCC(ret) && is_in_dest_split) {
|
if (OB_SUCC(ret) && is_in_dest_split) {
|
||||||
if (REACH_TIME_INTERVAL(60 * 1000 * 1000)) {
|
if (REACH_TIME_INTERVAL(60 * 1000 * 1000)) {
|
||||||
LOG_INFO("partition in logical splitting cannot keep multi version start", K_(pkey));
|
LOG_INFO("partition in logical splitting cannot keep multi version start", K_(pkey));
|
||||||
|
}
|
||||||
|
multi_version_start = std::max(ObTimeUtility::current_time(), multi_version_start);
|
||||||
}
|
}
|
||||||
multi_version_start = std::max(ObTimeUtility::current_time(), multi_version_start);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
multi_version_start = std::max(multi_version_start, meta_->multi_version_start_);
|
multi_version_start = std::max(multi_version_start, meta_->multi_version_start_);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user