This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 66b9b8f8d26 branch-3.0: [Fix](TPartitionVersionInfo) Fix duplicate
`TPartitionVersionInfo` in `PublishVersionTask.partitionVersionInfos` #44846
(#44883)
66b9b8f8d26 is described below
commit 66b9b8f8d269417437affd8c7b3ea0e237c6016e
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Dec 3 09:57:38 2024 +0800
branch-3.0: [Fix](TPartitionVersionInfo) Fix duplicate
`TPartitionVersionInfo` in `PublishVersionTask.partitionVersionInfos` #44846
(#44883)
Cherry-picked from #44846
Co-authored-by: bobhan1 <[email protected]>
---
.../java/org/apache/doris/catalog/TabletInvertedIndex.java | 13 +++++++------
.../main/java/org/apache/doris/master/ReportHandler.java | 9 +++++----
2 files changed, 12 insertions(+), 10 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 4a421dc7b2b..a51d1f55014 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
@@ -37,13 +37,14 @@ import org.apache.doris.transaction.TransactionState;
import org.apache.doris.transaction.TransactionStatus;
import com.google.common.base.Preconditions;
-import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Ordering;
+import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets;
import com.google.common.collect.Table;
import com.google.common.collect.TreeMultimap;
@@ -135,7 +136,7 @@ public class TabletInvertedIndex {
Set<Long> tabletFoundInMeta,
ListMultimap<TStorageMedium, Long>
tabletMigrationMap,
Map<Long, Long> partitionVersionSyncMap,
- Map<Long, ListMultimap<Long,
TPartitionVersionInfo>> transactionsToPublish,
+ Map<Long, SetMultimap<Long,
TPartitionVersionInfo>> transactionsToPublish,
ListMultimap<Long, Long> transactionsToClear,
ListMultimap<Long, Long> tabletRecoveryMap,
List<TTabletMetaInfo> tabletToUpdate,
@@ -314,7 +315,7 @@ public class TabletInvertedIndex {
}
private void handleBackendTransactions(long backendId, List<Long>
transactionIds, long tabletId,
- TabletMeta tabletMeta, Map<Long, ListMultimap<Long,
TPartitionVersionInfo>> transactionsToPublish,
+ TabletMeta tabletMeta, Map<Long, SetMultimap<Long,
TPartitionVersionInfo>> transactionsToPublish,
ListMultimap<Long, Long> transactionsToClear) {
GlobalTransactionMgrIface transactionMgr =
Env.getCurrentGlobalTransactionMgr();
long partitionId = tabletMeta.getPartitionId();
@@ -376,15 +377,15 @@ public class TabletInvertedIndex {
}
private void publishPartition(TransactionState transactionState, long
transactionId, TabletMeta tabletMeta,
- long partitionId, Map<Long, ListMultimap<Long,
TPartitionVersionInfo>> transactionsToPublish) {
+ long partitionId, Map<Long, SetMultimap<Long,
TPartitionVersionInfo>> transactionsToPublish) {
TPartitionVersionInfo versionInfo =
generatePartitionVersionInfoWhenReport(transactionState,
transactionId, tabletMeta, partitionId);
if (versionInfo != null) {
synchronized (transactionsToPublish) {
- ListMultimap<Long, TPartitionVersionInfo> map =
transactionsToPublish.get(
+ SetMultimap<Long, TPartitionVersionInfo> map =
transactionsToPublish.get(
transactionState.getDbId());
if (map == null) {
- map = ArrayListMultimap.create();
+ map = LinkedHashMultimap.create();
transactionsToPublish.put(transactionState.getDbId(), map);
}
map.put(transactionId, versionInfo);
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 bc51590ccb5..76e0fd4ec66 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
@@ -95,6 +95,7 @@ import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Queues;
+import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -503,7 +504,7 @@ public class ReportHandler extends Daemon {
Map<Long, Long> partitionVersionSyncMap = Maps.newConcurrentMap();
// dbid -> txn id -> [partition info]
- Map<Long, ListMultimap<Long, TPartitionVersionInfo>>
transactionsToPublish = Maps.newHashMap();
+ Map<Long, SetMultimap<Long, TPartitionVersionInfo>>
transactionsToPublish = Maps.newHashMap();
ListMultimap<Long, Long> transactionsToClear =
LinkedListMultimap.create();
// db id -> tablet id
@@ -1147,14 +1148,14 @@ public class ReportHandler extends Daemon {
}
private static void handleRepublishVersionInfo(
- Map<Long, ListMultimap<Long, TPartitionVersionInfo>>
transactionsToPublish, long backendId) {
+ Map<Long, SetMultimap<Long, TPartitionVersionInfo>>
transactionsToPublish, long backendId) {
AgentBatchTask batchTask = new AgentBatchTask();
long createPublishVersionTaskTime = System.currentTimeMillis();
for (Long dbId : transactionsToPublish.keySet()) {
- ListMultimap<Long, TPartitionVersionInfo> map =
transactionsToPublish.get(dbId);
+ SetMultimap<Long, TPartitionVersionInfo> map =
transactionsToPublish.get(dbId);
for (long txnId : map.keySet()) {
PublishVersionTask task = new PublishVersionTask(backendId,
txnId, dbId,
- map.get(txnId), createPublishVersionTaskTime);
+ Lists.newArrayList(map.get(txnId)),
createPublishVersionTaskTime);
batchTask.addTask(task);
// add to AgentTaskQueue for handling finish report.
AgentTaskQueue.addTask(task);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]