From d038d3bf212c25142a37c23d4a04560eb256a6d9 Mon Sep 17 00:00:00 2001 From: walter Date: Wed, 8 May 2024 19:28:32 +0800 Subject: [PATCH] [improve](restore) Release useless info for the finished job to reduce mem usage (#34513) --- .../org/apache/doris/backup/BackupJobInfo.java | 14 ++++++++++++++ .../apache/doris/backup/RestoreFileMapping.java | 5 +++++ .../java/org/apache/doris/backup/RestoreJob.java | 5 +++++ 3 files changed, 24 insertions(+) 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 c24d6c0329..7108315cee 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 @@ -788,6 +788,20 @@ public class BackupJobInfo implements Writable { return getBrief(); } + public void releaseSnapshotInfo() { + tabletBeMap.clear(); + tabletSnapshotPathMap.clear(); + for (BackupOlapTableInfo tableInfo : backupOlapTableObjects.values()) { + for (BackupPartitionInfo partInfo : tableInfo.partitions.values()) { + for (BackupIndexInfo indexInfo : partInfo.indexes.values()) { + for (BackupTabletInfo tabletInfo : indexInfo.sortedTabletInfoList) { + tabletInfo.files.clear(); + } + } + } + } + } + public static BackupJobInfo read(DataInput in) throws IOException { return BackupJobInfo.readFields(in); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreFileMapping.java b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreFileMapping.java index bcc3b7477b..07ddf6844d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreFileMapping.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreFileMapping.java @@ -156,6 +156,11 @@ public class RestoreFileMapping implements Writable { return mapping; } + public void clear() { + mapping.clear(); + overwriteMap.clear(); + } + @Override public void write(DataOutput out) throws IOException { out.writeInt(mapping.size()); 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 9dce692d17..5eb4950466 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 @@ -1801,6 +1801,8 @@ public class RestoreJob extends AbstractJob { releaseSnapshots(); snapshotInfos.clear(); + fileMapping.clear(); + jobInfo.releaseSnapshotInfo(); finishedTime = System.currentTimeMillis(); state = RestoreJobState.FINISHED; @@ -1993,6 +1995,9 @@ public class RestoreJob extends AbstractJob { releaseSnapshots(); snapshotInfos.clear(); + fileMapping.clear(); + jobInfo.releaseSnapshotInfo(); + RestoreJobState curState = state; finishedTime = System.currentTimeMillis(); state = RestoreJobState.CANCELLED;