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 <liao...@selectdb.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org