This is an automated email from the ASF dual-hosted git repository. w41ter pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new f1d37cb951e [improve](backup) Limit the output size of show backup/restore job progress (#44681) f1d37cb951e is described below commit f1d37cb951ee4b83bc9e3ff1d6dca7fb5bf37ac5 Author: walter <maoch...@selectdb.com> AuthorDate: Thu Nov 28 10:13:12 2024 +0800 [improve](backup) Limit the output size of show backup/restore job progress (#44681) A backup/restore job might involve millions of tablets, and the output of the show backup/restore command might be huge without limitation. --- .../java/org/apache/doris/alter/RollupJobV2.java | 4 ++-- .../java/org/apache/doris/backup/BackupJob.java | 22 ++++++++++++++++------ .../java/org/apache/doris/backup/RestoreJob.java | 22 ++++++++++++++++------ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java b/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java index 8eb87050bf6..1d09224e6fa 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java +++ b/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java @@ -570,7 +570,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable { continue; } - long visiableVersion = partition.getVisibleVersion(); + long visibleVersion = partition.getVisibleVersion(); short expectReplicationNum = tbl.getPartitionInfo().getReplicaAllocation( partitionId).getTotalReplicaNum(); MaterializedIndex rollupIndex = entry.getValue(); @@ -579,7 +579,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable { int healthyReplicaNum = 0; for (Replica replica : replicas) { if (!replica.isBad() && replica.getLastFailedVersion() < 0 - && replica.checkVersionCatchUp(visiableVersion, false)) { + && replica.checkVersionCatchUp(visibleVersion, false)) { healthyReplicaNum++; } } 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 621a2b1d9f7..d0a957dcd9a 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 @@ -1059,6 +1059,19 @@ public class BackupJob extends AbstractJob implements GsonPostProcessable { } public synchronized List<String> getInfo() { + String unfinishedTaskIdsStr = unfinishedTaskIds.entrySet().stream() + .map(e -> "[" + e.getKey() + "=" + e.getValue() + "]") + .limit(100) + .collect(Collectors.joining(", ")); + String taskProgressStr = taskProgress.entrySet().stream() + .map(e -> "[" + e.getKey() + ": " + e.getValue().first + "/" + e.getValue().second + "]") + .limit(100) + .collect(Collectors.joining(", ")); + String taskErrMsgStr = taskErrMsg.entrySet().stream() + .map(e -> "[" + e.getKey() + ": " + e.getValue() + "]") + .limit(100) + .collect(Collectors.joining(", ")); + List<String> info = Lists.newArrayList(); info.add(String.valueOf(jobId)); info.add(label); @@ -1069,12 +1082,9 @@ public class BackupJob extends AbstractJob implements GsonPostProcessable { info.add(TimeUtils.longToTimeString(snapshotFinishedTime)); info.add(TimeUtils.longToTimeString(snapshotUploadFinishedTime)); info.add(TimeUtils.longToTimeString(finishedTime)); - info.add(Joiner.on(", ").join(unfinishedTaskIds.entrySet())); - info.add(Joiner.on(", ").join(taskProgress.entrySet().stream().map( - e -> "[" + e.getKey() + ": " + e.getValue().first + "/" + e.getValue().second + "]").collect( - Collectors.toList()))); - info.add(Joiner.on(", ").join(taskErrMsg.entrySet().stream().map(n -> "[" + n.getKey() + ": " + n.getValue() - + "]").collect(Collectors.toList()))); + info.add(unfinishedTaskIdsStr); + info.add(taskProgressStr); + info.add(taskErrMsgStr); info.add(status.toString()); info.add(String.valueOf(timeoutMs / 1000)); return info; 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 0b5b0cb0339..f1abb0c9e63 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 @@ -2208,6 +2208,11 @@ public class RestoreJob extends AbstractJob implements GsonPostProcessable { } public synchronized List<String> getInfo(boolean isBrief) { + String unfinishedTaskIdsStr = unfinishedSignatureToId.entrySet().stream() + .map(e -> "[" + e.getKey() + "=" + e.getValue() + "]") + .limit(100) + .collect(Collectors.joining(", ")); + List<String> info = Lists.newArrayList(); info.add(String.valueOf(jobId)); info.add(label); @@ -2227,13 +2232,18 @@ public class RestoreJob extends AbstractJob implements GsonPostProcessable { info.add(TimeUtils.longToTimeString(snapshotFinishedTime)); info.add(TimeUtils.longToTimeString(downloadFinishedTime)); info.add(TimeUtils.longToTimeString(finishedTime)); - info.add(Joiner.on(", ").join(unfinishedSignatureToId.entrySet())); + info.add(unfinishedTaskIdsStr); if (!isBrief) { - info.add(Joiner.on(", ").join(taskProgress.entrySet().stream().map( - e -> "[" + e.getKey() + ": " + e.getValue().first + "/" + e.getValue().second + "]").collect( - Collectors.toList()))); - info.add(Joiner.on(", ").join(taskErrMsg.entrySet().stream().map(n -> "[" + n.getKey() + ": " - + n.getValue() + "]").collect(Collectors.toList()))); + String taskProgressStr = taskProgress.entrySet().stream() + .map(e -> "[" + e.getKey() + ": " + e.getValue().first + "/" + e.getValue().second + "]") + .limit(100) + .collect(Collectors.joining(", ")); + String taskErrMsgStr = taskErrMsg.entrySet().stream() + .map(n -> "[" + n.getKey() + ": " + n.getValue() + "]") + .limit(100) + .collect(Collectors.joining(", ")); + info.add(taskProgressStr); + info.add(taskErrMsgStr); } info.add(status.toString()); info.add(String.valueOf(timeoutMs / 1000)); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org