From 7d64a80959100ea2c7861698bf703fd8ed9abf05 Mon Sep 17 00:00:00 2001 From: bobhan1 Date: Fri, 28 Mar 2025 11:50:31 +0800 Subject: [PATCH] branch-2.1-pick: [Fix](log) correct tablet diff log in `TabletInvertedIndex.tabletReport` (#49390) (#49445) pick https://github.com/apache/doris/pull/49390 --- .../doris/catalog/TabletInvertedIndex.java | 18 ++++++++++++------ .../org/apache/doris/master/ReportHandler.java | 7 ++++--- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletInvertedIndex.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletInvertedIndex.java index 6d9703d348..796ce457fc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletInvertedIndex.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletInvertedIndex.java @@ -134,7 +134,7 @@ public class TabletInvertedIndex { ListMultimap tabletMigrationMap, Map partitionVersionSyncMap, Map> transactionsToPublish, - ListMultimap transactionsToClear, + SetMultimap transactionsToClear, ListMultimap tabletRecoveryMap, List tabletToUpdate, List cooldownConfToPush, @@ -375,15 +375,21 @@ public class TabletInvertedIndex { cooldownTablets.forEach(p -> handleCooldownConf(p.first, p.second, cooldownConfToPush, cooldownConfToUpdate)); long end = System.currentTimeMillis(); + long toClearTransactionsNum = transactionsToClear.keySet().size(); + long toClearTransactionsPartitions = transactionsToClear.values().size(); + long toPublishTransactionsNum = transactionsToPublish.values().stream() + .mapToLong(m -> m.keySet().size()).sum(); + long toPublishTransactionsPartitions = transactionsToPublish.values().stream() + .mapToLong(m -> m.values().size()).sum(); LOG.info("finished to do tablet diff with backend[{}]. fe tablet num: {}, backend tablet num: {}. sync: {}." + " metaDel: {}. foundInMeta: {}. migration: {}. backend partition num: {}, backend need " - + "update: {}. found invalid transactions {}. found republish " - + "transactions {}. tabletToUpdate: {}. need recovery: {}. cost: {} ms", + + "update: {}. found invalid transactions {}(partitions: {}). found republish " + + "transactions {}(partitions: {}). tabletToUpdate: {}. need recovery: {}. cost: {} ms", backendId, feTabletNum, backendTablets.size(), tabletSyncMap.size(), tabletDeleteFromMeta.size(), tabletFoundInMeta.size(), tabletMigrationMap.size(), - backendPartitionsVersion.size(), partitionVersionSyncMap.size(), - transactionsToClear.size(), transactionsToPublish.size(), tabletToUpdate.size(), - tabletRecoveryMap.size(), (end - start)); + backendPartitionsVersion.size(), partitionVersionSyncMap.size(), toClearTransactionsNum, + toClearTransactionsPartitions, toPublishTransactionsNum, toPublishTransactionsPartitions, + tabletToUpdate.size(), tabletRecoveryMap.size(), (end - start)); } public Long getTabletIdByReplica(long replicaId) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java index 6a51ad6caf..e11038a20a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java @@ -89,6 +89,7 @@ import org.apache.doris.thrift.TTabletMetaInfo; import org.apache.doris.thrift.TTaskType; import com.google.common.base.Preconditions; +import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.ListMultimap; import com.google.common.collect.Lists; @@ -494,7 +495,7 @@ public class ReportHandler extends Daemon { // dbid -> txn id -> [partition info] Map> transactionsToPublish = Maps.newHashMap(); - ListMultimap transactionsToClear = LinkedListMultimap.create(); + SetMultimap transactionsToClear = LinkedHashMultimap.create(); // db id -> tablet id ListMultimap tabletRecoveryMap = LinkedListMultimap.create(); @@ -1237,11 +1238,11 @@ public class ReportHandler extends Daemon { AgentTaskExecutor.submit(batchTask); } - private static void handleClearTransactions(ListMultimap transactionsToClear, long backendId) { + private static void handleClearTransactions(SetMultimap transactionsToClear, long backendId) { AgentBatchTask batchTask = new AgentBatchTask(); for (Long transactionId : transactionsToClear.keySet()) { ClearTransactionTask clearTransactionTask = new ClearTransactionTask(backendId, - transactionId, transactionsToClear.get(transactionId)); + transactionId, Lists.newArrayList(transactionsToClear.get(transactionId))); batchTask.addTask(clearTransactionTask); } AgentTaskExecutor.submit(batchTask);