diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java index dbb96a96f0..597dacc3c0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java @@ -643,7 +643,10 @@ public class BackupJob extends AbstractJob { for (Long beId : beToSnapshots.keySet()) { List infos = beToSnapshots.get(beId); int totalNum = infos.size(); - int batchNum = Math.min(totalNum, Config.backup_upload_task_num_per_be); + int batchNum = totalNum; + if (Config.backup_upload_task_num_per_be > 0) { + batchNum = Math.min(totalNum, Config.backup_upload_task_num_per_be); + } // each task contains several upload sub tasks int taskNumPerBatch = Math.max(totalNum / batchNum, 1); LOG.info("backend {} has {} batch, total {} tasks, {}", beId, batchNum, totalNum, this); diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJobInfo.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJobInfo.java index f154ff72d7..c24d6c0329 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJobInfo.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJobInfo.java @@ -277,17 +277,18 @@ public class BackupJobInfo implements Writable { public void retainOdbcTables(Set odbcTableNames) { Iterator odbcIter = newBackupObjects.odbcTables.listIterator(); - Set removedOdbcResourceNames = Sets.newHashSet(); + Set retainOdbcResourceNames = Sets.newHashSet(); while (odbcIter.hasNext()) { BackupOdbcTableInfo backupOdbcTableInfo = odbcIter.next(); if (!odbcTableNames.contains(backupOdbcTableInfo.dorisTableName)) { - removedOdbcResourceNames.add(backupOdbcTableInfo.resourceName); odbcIter.remove(); + } else { + retainOdbcResourceNames.add(backupOdbcTableInfo.resourceName); } } Iterator resourceIter = newBackupObjects.odbcResources.listIterator(); while (resourceIter.hasNext()) { - if (removedOdbcResourceNames.contains(resourceIter.next().name)) { + if (!retainOdbcResourceNames.contains(resourceIter.next().name)) { resourceIter.remove(); } } 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 2e6bbb162a..d5f2b726ca 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 @@ -1381,7 +1381,10 @@ public class RestoreJob extends AbstractJob { for (Long beId : beToSnapshots.keySet()) { List beSnapshotInfos = beToSnapshots.get(beId); int totalNum = beSnapshotInfos.size(); - int batchNum = Math.min(totalNum, Config.restore_download_task_num_per_be); + int batchNum = totalNum; + if (Config.restore_download_task_num_per_be > 0) { + batchNum = Math.min(totalNum, Config.restore_download_task_num_per_be); + } // each task contains several upload sub tasks int taskNumPerBatch = Math.max(totalNum / batchNum, 1); if (LOG.isDebugEnabled()) { @@ -1537,7 +1540,10 @@ public class RestoreJob extends AbstractJob { for (Long beId : beToSnapshots.keySet()) { List beSnapshotInfos = beToSnapshots.get(beId); int totalNum = beSnapshotInfos.size(); - int batchNum = Math.min(totalNum, Config.restore_download_task_num_per_be); + int batchNum = totalNum; + if (Config.restore_download_task_num_per_be > 0) { + batchNum = Math.min(totalNum, Config.restore_download_task_num_per_be); + } // each task contains several upload sub tasks int taskNumPerBatch = Math.max(totalNum / batchNum, 1);