This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
commit 9a3bebd848ae9713fb9663fab67c8dda4b7bd041 Author: xueweizhang <[email protected]> AuthorDate: Mon Feb 6 22:38:03 2023 +0800 [fix](restore) do not set default replication_allocation when restore with property reserve_replica = true (#15562) Signed-off-by: nextdreamblue <[email protected]> --- fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java | 3 ++- fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java | 5 +++-- .../src/main/java/org/apache/doris/catalog/TableProperty.java | 6 ++++-- .../src/test/java/org/apache/doris/catalog/OlapTableTest.java | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) 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 dad2bf3b11..35e3a0fc47 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 @@ -672,7 +672,8 @@ public class RestoreJob extends AbstractJob { } // Reset properties to correct values. - remoteOlapTbl.resetPropertiesForRestore(reserveDynamicPartitionEnable, replicaAlloc); + remoteOlapTbl.resetPropertiesForRestore(reserveDynamicPartitionEnable, reserveReplica, + replicaAlloc); // DO NOT set remote table's new name here, cause we will still need the origin name later // remoteOlapTbl.setName(jobInfo.getAliasByOriginNameIfSet(tblInfo.name)); 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 c83acb1af4..bda32ce929 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 @@ -435,9 +435,10 @@ public class OlapTable extends Table { /** * Reset properties to correct values. */ - public void resetPropertiesForRestore(boolean reserveDynamicPartitionEnable, ReplicaAllocation replicaAlloc) { + public void resetPropertiesForRestore(boolean reserveDynamicPartitionEnable, boolean reserveReplica, + ReplicaAllocation replicaAlloc) { if (tableProperty != null) { - tableProperty.resetPropertiesForRestore(reserveDynamicPartitionEnable, replicaAlloc); + tableProperty.resetPropertiesForRestore(reserveDynamicPartitionEnable, reserveReplica, replicaAlloc); } // remove colocate property. setColocateGroup(null); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java index 04db48067e..439d4bb58b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java @@ -115,7 +115,7 @@ public class TableProperty implements Writable { * * @return this for chained */ - public TableProperty resetPropertiesForRestore(boolean reserveDynamicPartitionEnable, + public TableProperty resetPropertiesForRestore(boolean reserveDynamicPartitionEnable, boolean reserveReplica, ReplicaAllocation replicaAlloc) { // disable dynamic partition if (properties.containsKey(DynamicPartitionProperty.ENABLE)) { @@ -124,7 +124,9 @@ public class TableProperty implements Writable { } executeBuildDynamicProperty(); } - setReplicaAlloc(replicaAlloc); + if (!reserveReplica) { + setReplicaAlloc(replicaAlloc); + } return this; } diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java index f547189ff1..340161495d 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java @@ -92,7 +92,7 @@ public class OlapTableTest { Assert.assertTrue(olapTable.getDefaultReplicaAllocation() == ReplicaAllocation.DEFAULT_ALLOCATION); ReplicaAllocation replicaAlloc = new ReplicaAllocation((short) 4); - olapTable.resetPropertiesForRestore(false, replicaAlloc); + olapTable.resetPropertiesForRestore(false, false, replicaAlloc); Assert.assertEquals(tableProperty.getProperties(), olapTable.getTableProperty().getProperties()); Assert.assertFalse(tableProperty.getDynamicPartitionProperty().isExist()); Assert.assertFalse(olapTable.isColocateTable()); @@ -112,7 +112,7 @@ public class OlapTableTest { tableProperty = new TableProperty(properties); olapTable.setTableProperty(tableProperty); - olapTable.resetPropertiesForRestore(false, ReplicaAllocation.DEFAULT_ALLOCATION); + olapTable.resetPropertiesForRestore(false, false, ReplicaAllocation.DEFAULT_ALLOCATION); Map<String, String> expectedProperties = Maps.newHashMap(properties); expectedProperties.put(DynamicPartitionProperty.ENABLE, "false"); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
