From 0c581542a773b77b3c746b5c84b6a07e69a9bcb6 Mon Sep 17 00:00:00 2001 From: handora Date: Tue, 17 Aug 2021 14:02:38 +0800 Subject: [PATCH] [BUG] clear record when data not changed --- src/storage/ob_partition_group.cpp | 31 ++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/storage/ob_partition_group.cpp b/src/storage/ob_partition_group.cpp index 17bee3ce00..34241cc998 100644 --- a/src/storage/ob_partition_group.cpp +++ b/src/storage/ob_partition_group.cpp @@ -3875,22 +3875,25 @@ int ObPartitionGroup::freeze_log_and_data_v2_(const bool emergency, const bool f } } else if (!changed) { // skip - } else if (OB_FAIL(submit_freeze_and_effect_memstore_( - is_leader, emergency, *frozen_memtable, effected, snapshot_version))) { - STORAGE_LOG(WARN, "submit freeze and prepare memstore", K(ret), K(pkey_), K(*frozen_memtable)); - } else if (effected) { - if (OB_FAIL(pg_storage_.get_active_memtable(new_handle))) { - STORAGE_LOG(WARN, "fail to get new active memtable", K(ret), K(pkey_)); - } else if (OB_FAIL(freeze_record_.submit_new_active_memtable(new_handle))) { - // Submit a new memtable. Allow async_freeze threads to scan and synchronize log. - STORAGE_LOG(ERROR, "fail to submit freeze record", K(ret), K(pkey_)); - } else { - STORAGE_LOG(INFO, "submit_new_active_memtable success", K(ret), K(pkey_)); + } else { + if (OB_FAIL( + submit_freeze_and_effect_memstore_(is_leader, emergency, *frozen_memtable, effected, snapshot_version))) { + STORAGE_LOG(WARN, "submit freeze and prepare memstore", K(ret), K(pkey_), K(*frozen_memtable)); + } else if (effected) { + if (OB_FAIL(pg_storage_.get_active_memtable(new_handle))) { + STORAGE_LOG(WARN, "fail to get new active memtable", K(ret), K(pkey_)); + } else if (OB_FAIL(freeze_record_.submit_new_active_memtable(new_handle))) { + // Submit a new memtable. Allow async_freeze threads to scan and synchronize log. + STORAGE_LOG(ERROR, "fail to submit freeze record", K(ret), K(pkey_)); + } else { + STORAGE_LOG(INFO, "submit_new_active_memtable success", K(ret), K(pkey_)); + } } - } - if (OB_FAIL(ret) || !effected) { - freeze_record_.clear(); + if (OB_FAIL(ret) || !effected) { + TRANS_LOG(INFO, "clear the record when failed", K(*this)); + freeze_record_.clear(); + } } return ret; -- GitLab