From a5e0885efb8241e75b18898160f0ecea965ae787 Mon Sep 17 00:00:00 2001 From: Luwei <814383175@qq.com> Date: Wed, 17 Apr 2024 17:01:43 +0800 Subject: [PATCH] [fix](merge-cloud) fix truncate table transaction exceeding limit --- .../doris/cloud/datasource/CloudInternalCatalog.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java index 42ca4bfe99c0fb..a46fddb2a4b873 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java @@ -67,10 +67,12 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; public class CloudInternalCatalog extends InternalCatalog { private static final Logger LOG = LogManager.getLogger(CloudInternalCatalog.class); @@ -616,7 +618,7 @@ public void erasePartitionDropBackendReplicas(List partitions) { long tableId = -1; List partitionIds = Lists.newArrayList(); - List indexIds = Lists.newArrayList(); + Set indexIds = new HashSet<>(); for (Partition partition : partitions) { for (MaterializedIndex index : partition.getMaterializedIndices(IndexExtState.ALL)) { indexIds.add(index.getId()); @@ -637,7 +639,8 @@ public void erasePartitionDropBackendReplicas(List partitions) { break; } try { - dropCloudPartition(partition0.getDbId(), tableId, partitionIds, indexIds); + dropCloudPartition(partition0.getDbId(), tableId, partitionIds, + indexIds.stream().collect(Collectors.toList())); } catch (Exception e) { LOG.warn("failed to drop partition {} of table {}, try cnt {}, execption {}", partitionIds, tableId, tryCnt, e);