From 9952cef221c467fb84e3fe76c815986cbf107526 Mon Sep 17 00:00:00 2001 From: smallx Date: Thu, 29 Aug 2024 17:01:53 +0800 Subject: [PATCH 1/3] [fix](restore) Reset next version for remote table when restore --- .../src/main/java/org/apache/doris/backup/RestoreJob.java | 3 +++ .../src/main/java/org/apache/doris/catalog/OlapTable.java | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java index af677d9f21f43e..a74e4bc8453049 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java @@ -770,6 +770,9 @@ private void checkAndPrepareMeta() { return; } + // reset next version to visible version for all partitions + remoteOlapTbl.resetVersionForRestore(); + // Reset properties to correct values. remoteOlapTbl.resetPropertiesForRestore(reserveDynamicPartitionEnable, reserveReplica, replicaAlloc, isBeingSynced); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java index b20433fdf68024..aadee377a6ad30 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java @@ -629,6 +629,12 @@ public void resetPropertiesForRestore(boolean reserveDynamicPartitionEnable, boo setColocateGroup(null); } + public void resetVersionForRestore() { + for (Partition partition : idToPartition.values()) { + partition.setNextVersion(partition.getVisibleVersion()); + } + } + public Status resetIdsForRestore(Env env, Database db, ReplicaAllocation restoreReplicaAlloc, boolean reserveReplica) { // ATTN: The meta of the restore may come from different clusters, so the From 7d7f5d893a2f5fc8f471884703778d56e1a25baa Mon Sep 17 00:00:00 2001 From: smallx Date: Thu, 29 Aug 2024 17:40:53 +0800 Subject: [PATCH 2/3] fix next version --- .../src/main/java/org/apache/doris/catalog/OlapTable.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java index aadee377a6ad30..d4a7c7cd5dc331 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java @@ -631,7 +631,7 @@ public void resetPropertiesForRestore(boolean reserveDynamicPartitionEnable, boo public void resetVersionForRestore() { for (Partition partition : idToPartition.values()) { - partition.setNextVersion(partition.getVisibleVersion()); + partition.setNextVersion(partition.getVisibleVersion() + 1); } } From 8748be0b6f9a9dd5ed6952255903c9eb6d95ce4c Mon Sep 17 00:00:00 2001 From: smallx Date: Thu, 29 Aug 2024 18:22:38 +0800 Subject: [PATCH 3/3] fix comment --- .../src/main/java/org/apache/doris/backup/RestoreJob.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java index a74e4bc8453049..a9f82ccc1c7367 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java @@ -770,7 +770,7 @@ private void checkAndPrepareMeta() { return; } - // reset next version to visible version for all partitions + // reset next version to visible version + 1 for all partitions remoteOlapTbl.resetVersionForRestore(); // Reset properties to correct values.