This is an automated email from the ASF dual-hosted git repository.
liaoxin 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 c59b1db9466 [Opt](load) only MoW table need table commit lock when
commit transaction for cloud mode (#45220) (#46045)
c59b1db9466 is described below
commit c59b1db9466dc956b424c69fd879737aeafc03bf
Author: Xin Liao <[email protected]>
AuthorDate: Thu Jan 2 19:16:09 2025 +0800
[Opt](load) only MoW table need table commit lock when commit transaction
for cloud mode (#45220) (#46045)
cherry-pick from #45220 #46305
---
.../cloud/transaction/CloudGlobalTransactionMgr.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java
index 46ec6989416..c91a8a4bdfb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java
@@ -136,6 +136,7 @@ import java.io.IOException;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -1105,19 +1106,24 @@ public class CloudGlobalTransactionMgr implements
GlobalTransactionMgrIface {
entry.getValue().get());
}
}
- increaseWaitingLockCount(tableList);
- if (!MetaLockUtils.tryCommitLockTables(tableList, timeoutMillis,
TimeUnit.MILLISECONDS)) {
- decreaseWaitingLockCount(tableList);
+
+ List<Table> mowTableList = tableList.stream()
+ .filter(table -> table instanceof OlapTable && ((OlapTable)
table).getEnableUniqueKeyMergeOnWrite())
+ .sorted(Comparator.comparingLong(Table::getId))
+ .collect(Collectors.toList());
+ increaseWaitingLockCount(mowTableList);
+ if (!MetaLockUtils.tryCommitLockTables(mowTableList, timeoutMillis,
TimeUnit.MILLISECONDS)) {
+ decreaseWaitingLockCount(mowTableList);
// DELETE_BITMAP_LOCK_ERR will be retried on be
throw new UserException(InternalErrorCode.DELETE_BITMAP_LOCK_ERR,
"get table cloud commit lock timeout, tableList=("
- + StringUtils.join(tableList, ",") + ")");
+ + StringUtils.join(mowTableList, ",") + ")");
}
try {
commitTransaction(db.getId(), tableList, transactionId,
tabletCommitInfos, txnCommitAttachment);
} finally {
- decreaseWaitingLockCount(tableList);
- MetaLockUtils.commitUnlockTables(tableList);
+ decreaseWaitingLockCount(mowTableList);
+ MetaLockUtils.commitUnlockTables(mowTableList);
}
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]