This is an automated email from the ASF dual-hosted git repository. caiconghui pushed a commit to branch transaction_quota in repository https://gitbox.apache.org/repos/asf/doris.git
commit 1ec6b28323cce8fe9865b6f0a7b42e1079ea7b91 Author: caiconghui1 <caicongh...@jd.com> AuthorDate: Thu Feb 8 00:48:33 2024 +0800 [enhancement](transatcion) show more details about transactuin num when execute show data stmt --- .../org/apache/doris/analysis/ShowDataStmt.java | 42 +++++++++------ .../transaction/CloudGlobalTransactionMgr.java | 6 +++ .../org/apache/doris/common/proc/DbsProcDir.java | 5 +- .../doris/transaction/DatabaseTransactionMgr.java | 59 +++++++++------------- .../doris/transaction/GlobalTransactionMgr.java | 7 ++- .../transaction/GlobalTransactionMgrIface.java | 3 ++ .../apache/doris/analysis/ShowDataStmtTest.java | 6 +-- .../apache/doris/common/proc/DbsProcDirTest.java | 27 ++++++++-- .../transaction/DatabaseTransactionMgrTest.java | 8 +-- 9 files changed, 96 insertions(+), 67 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java index ddaf27fa539..7b948e28fd0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java @@ -49,6 +49,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; @@ -60,6 +61,7 @@ public class ShowDataStmt extends ShowStmt { .addColumn(new Column("Size", ScalarType.createVarchar(30))) .addColumn(new Column("ReplicaCount", ScalarType.createVarchar(20))) .addColumn(new Column("RemoteSize", ScalarType.createVarchar(30))) + .addColumn(new Column("TransactionNum", ScalarType.createVarchar(30))) .build(); private static final ShowResultSetMetaData SHOW_INDEX_DATA_META_DATA = @@ -73,7 +75,7 @@ public class ShowDataStmt extends ShowStmt { .build(); public static final ImmutableList<String> SHOW_TABLE_DATA_META_DATA_ORIGIN = new ImmutableList.Builder<String>().add("TableName").add("Size").add("ReplicaCount") - .add("RemoteSize").build(); + .add("RemoteSize").add("TransactionNum").build(); public static final ImmutableList<String> SHOW_INDEX_DATA_META_DATA_ORIGIN = new ImmutableList.Builder<String>().add("TableName").add("IndexName").add("Size").add("ReplicaCount") @@ -123,6 +125,16 @@ public class ShowDataStmt extends ShowStmt { } if (tableName == null) { + Map<Long, List<Long>> transToTableListInfo = Env.getCurrentGlobalTransactionMgr() + .getDbRunningTransInfo(db.getId()); + Map<Long, Long> tableToTransNumInfo = Maps.newHashMap(); + for (Entry<Long, List<Long>> transWithTableList : transToTableListInfo.entrySet()) { + for (Long tableId : transWithTableList.getValue()) { + Long transNum = tableToTransNumInfo.getOrDefault(tableId, 0L); + transNum++; + tableToTransNumInfo.put(tableId, transNum); + } + } db.readLock(); try { long totalSize = 0; @@ -155,6 +167,7 @@ public class ShowDataStmt extends ShowStmt { long tableSize = 0; long replicaCount = 0; long remoteSize = 0; + long transNum = tableToTransNumInfo.getOrDefault(table.getId(), 0L); olapTable.readLock(); try { tableSize = olapTable.getDataSize(); @@ -163,8 +176,8 @@ public class ShowDataStmt extends ShowStmt { } finally { olapTable.readUnlock(); } - //|TableName|Size|ReplicaCount|RemoteSize - List<Object> row = Arrays.asList(table.getName(), tableSize, replicaCount, remoteSize); + //|TableName|Size|ReplicaCount|RemoteSize|TransactionNum + List<Object> row = Arrays.asList(table.getName(), tableSize, replicaCount, remoteSize, transNum); totalRowsObject.add(row); totalSize += tableSize; @@ -193,7 +206,7 @@ public class ShowDataStmt extends ShowStmt { String remoteReadableSize = DebugUtil.DECIMAL_FORMAT_SCALE_3.format(remoteSizePair.first) + " " + remoteSizePair.second; List<String> result = Arrays.asList(String.valueOf(row.get(0)), - readableSize, String.valueOf(row.get(2)), remoteReadableSize); + readableSize, String.valueOf(row.get(2)), remoteReadableSize, ""); totalRows.add(result); } @@ -204,33 +217,31 @@ public class ShowDataStmt extends ShowStmt { String remoteReadableSize = DebugUtil.DECIMAL_FORMAT_SCALE_3.format(totalRemoteSizePair.first) + " " + totalRemoteSizePair.second; List<String> total = Arrays.asList("Total", readableSize, String.valueOf(totalReplicaCount), - remoteReadableSize); + remoteReadableSize, String.valueOf(transToTableListInfo.size())); totalRows.add(total); // quota long quota = db.getDataQuota(); long replicaQuota = db.getReplicaQuota(); + long transactionQuota = db.getTransactionQuotaSize(); Pair<Double, String> quotaPair = DebugUtil.getByteUint(quota); String readableQuota = DebugUtil.DECIMAL_FORMAT_SCALE_3.format(quotaPair.first) + " " + quotaPair.second; - List<String> quotaRow = Arrays.asList("Quota", readableQuota, String.valueOf(replicaQuota), ""); + List<String> quotaRow = Arrays.asList("Quota", readableQuota, String.valueOf(replicaQuota), "", + String.valueOf(transactionQuota)); totalRows.add(quotaRow); // left long left = Math.max(0, quota - totalSize); long replicaCountLeft = Math.max(0, replicaQuota - totalReplicaCount); + long transNumLeft = Math.max(0, transactionQuota - transToTableListInfo.size()); Pair<Double, String> leftPair = DebugUtil.getByteUint(left); String readableLeft = DebugUtil.DECIMAL_FORMAT_SCALE_3.format(leftPair.first) + " " + leftPair.second; - List<String> leftRow = Arrays.asList("Left", readableLeft, String.valueOf(replicaCountLeft), ""); + List<String> leftRow = Arrays.asList("Left", readableLeft, String.valueOf(replicaCountLeft), + String.valueOf(transNumLeft)); totalRows.add(leftRow); - - // txn quota - long txnQuota = db.getTransactionQuotaSize(); - List<String> transactionQuotaList = Arrays.asList("Transaction Quota", - String.valueOf(txnQuota), String.valueOf(txnQuota), ""); - totalRows.add(transactionQuotaList); } finally { db.readUnlock(); } @@ -385,11 +396,10 @@ public class ShowDataStmt extends ShowStmt { public String toSql() { StringBuilder builder = new StringBuilder(); builder.append("SHOW DATA"); - builder.append(" FROM "); + if (tableName != null) { + builder.append(" FROM "); builder.append(tableName.toSql()); - } else { - builder.append("`").append(dbName).append("`"); } // Order By clause 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 134c4f50565..e51f91b1a8d 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 @@ -83,6 +83,7 @@ import java.io.DataOutput; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeoutException; public class CloudGlobalTransactionMgr implements GlobalTransactionMgrIface { @@ -776,6 +777,11 @@ public class CloudGlobalTransactionMgr implements GlobalTransactionMgrIface { throw new AnalysisException(NOT_SUPPORTED_MSG); } + @Override + public Map<Long, List<Long>> getDbRunningTransInfo(long dbId) throws AnalysisException { + throw new AnalysisException(NOT_SUPPORTED_MSG); + } + @Override public List<List<String>> getDbTransInfoByStatus(Long dbId, TransactionStatus status) throws AnalysisException { throw new AnalysisException(NOT_SUPPORTED_MSG); diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java index a3818099d8e..36b60f28fce 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java @@ -43,7 +43,7 @@ public class DbsProcDir implements ProcDirInterface { public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>() .add("DbId").add("DbName").add("TableNum").add("Size").add("Quota") .add("LastConsistencyCheckTime").add("ReplicaCount").add("ReplicaQuota") - .add("TransactionQuota").add("LastUpdateTime") + .add("TransactionNum").add("TransactionQuota").add("LastUpdateTime") .build(); private Env env; @@ -115,12 +115,15 @@ public class DbsProcDir implements ProcDirInterface { ((Database) db).getLastCheckTime()) : FeConstants.null_string; long replicaCount = (db instanceof Database) ? ((Database) db).getReplicaCountWithLock() : 0; long replicaQuota = (db instanceof Database) ? ((Database) db).getReplicaQuota() : 0; + long transactionNum = (db instanceof Database) ? env.getGlobalTransactionMgr() + .getRunningTxnNums(db.getId()) : 0; long transactionQuota = (db instanceof Database) ? ((Database) db).getTransactionQuotaSize() : 0; dbInfo.add(readableUsedQuota); dbInfo.add(readableQuota); dbInfo.add(lastCheckTime); dbInfo.add(replicaCount); dbInfo.add(replicaQuota); + dbInfo.add(transactionNum); dbInfo.add(transactionQuota); dbInfo.add(TimeUtils.longToTimeString(db.getLastUpdateTime())); } finally { diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java index fd48b974544..9c7c1e756e0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java @@ -83,6 +83,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -147,12 +148,9 @@ public class DatabaseTransactionMgr { // it must exists in dbIdToTxnLabels, and vice versa private final Map<String, Set<Long>> labelToTxnIds = Maps.newHashMap(); - // count the number of running txns of database, except for the routine load txn + // count the number of running txns of database private volatile int runningTxnNums = 0; - // count only the number of running routine load txns of database - private volatile int runningRoutineLoadTxnNums = 0; - private final Env env; private final EditLog editLog; @@ -238,10 +236,6 @@ public class DatabaseTransactionMgr { return runningTxnNums; } - protected int getRunningRoutineLoadTxnNums() { - return runningRoutineLoadTxnNums; - } - @VisibleForTesting protected int getFinishedTxnNums() { return idToFinalStatusTransactionState.size(); @@ -272,6 +266,19 @@ public class DatabaseTransactionMgr { return infos; } + public Map<Long, List<Long>> getDbRunningTransInfo() { + Map<Long, List<Long>> infos = Maps.newHashMap(); + readLock(); + try { + for (Entry<Long, TransactionState> info : idToRunningTransactionState.entrySet()) { + infos.put(info.getKey(), info.getValue().getTableIdList()); + } + } finally { + readUnlock(); + } + return infos; + } + public List<List<String>> getTxnStateInfoList(TransactionStatus status) { List<List<String>> infos = Lists.newArrayList(); Collection<TransactionState> transactionStateCollection = null; @@ -386,7 +393,7 @@ public class DatabaseTransactionMgr { } } - checkRunningTxnExceedLimit(sourceType); + checkRunningTxnExceedLimit(); tid = idGenerator.getNextTransactionId(); TransactionState transactionState = new TransactionState(dbId, tableIdList, @@ -1424,19 +1431,11 @@ public class DatabaseTransactionMgr { } if (!transactionState.getTransactionStatus().isFinalStatus()) { if (idToRunningTransactionState.put(transactionState.getTransactionId(), transactionState) == null) { - if (transactionState.getSourceType() == TransactionState.LoadJobSourceType.ROUTINE_LOAD_TASK) { - runningRoutineLoadTxnNums++; - } else { - runningTxnNums++; - } + runningTxnNums++; } } else { if (idToRunningTransactionState.remove(transactionState.getTransactionId()) != null) { - if (transactionState.getSourceType() == TransactionState.LoadJobSourceType.ROUTINE_LOAD_TASK) { - runningRoutineLoadTxnNums--; - } else { - runningTxnNums--; - } + runningTxnNums--; } idToFinalStatusTransactionState.put(transactionState.getTransactionId(), transactionState); if (transactionState.isShortTxn()) { @@ -1820,22 +1819,12 @@ public class DatabaseTransactionMgr { return infos; } - protected void checkRunningTxnExceedLimit(TransactionState.LoadJobSourceType sourceType) + protected void checkRunningTxnExceedLimit() throws BeginTransactionException, MetaNotFoundException { - switch (sourceType) { - case ROUTINE_LOAD_TASK: - // no need to check limit for routine load task: - // 1. the number of running routine load tasks is limited by Config.max_routine_load_task_num_per_be - // 2. if we add routine load txn to runningTxnNums, runningTxnNums will always be occupied by routine - // load, and other txn may not be able to submitted. - break; - default: - long txnQuota = env.getInternalCatalog().getDbOrMetaException(dbId).getTransactionQuotaSize(); - if (runningTxnNums >= txnQuota) { - throw new BeginTransactionException("current running txns on db " + dbId + " is " - + runningTxnNums + ", larger than limit " + txnQuota); - } - break; + long txnQuota = env.getInternalCatalog().getDbOrMetaException(dbId).getTransactionQuotaSize(); + if (runningTxnNums >= txnQuota) { + throw new BeginTransactionException("current running txns on db " + dbId + " is " + + runningTxnNums + ", larger than limit " + txnQuota); } } @@ -2126,7 +2115,7 @@ public class DatabaseTransactionMgr { readLock(); try { infos.add(Lists.newArrayList("running", String.valueOf( - runningTxnNums + runningRoutineLoadTxnNums))); + runningTxnNums))); long finishedNum = getFinishedTxnNums(); infos.add(Lists.newArrayList("finished", String.valueOf(finishedNum))); } finally { diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java index f755d148c92..813266749a3 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java @@ -593,7 +593,7 @@ public class GlobalTransactionMgr implements GlobalTransactionMgrIface { long runningNum = 0; try { DatabaseTransactionMgr dbMgr = getDatabaseTransactionMgr(dbId); - runningNum = dbMgr.getRunningTxnNums() + dbMgr.getRunningRoutineLoadTxnNums(); + runningNum = dbMgr.getRunningTxnNums(); totalRunningNum += runningNum; } catch (AnalysisException e) { LOG.warn("get database running transaction num failed", e); @@ -623,6 +623,11 @@ public class GlobalTransactionMgr implements GlobalTransactionMgrIface { return dbTransactionMgr.getTxnStateInfoList(running, limit); } + public Map<Long, List<Long>> getDbRunningTransInfo(long dbId) throws AnalysisException { + DatabaseTransactionMgr dbTransactionMgr = getDatabaseTransactionMgr(dbId); + return dbTransactionMgr.getDbRunningTransInfo(); + } + @Override public List<List<String>> getDbTransInfoByStatus(Long dbId, TransactionStatus status) throws AnalysisException { DatabaseTransactionMgr dbTransactionMgr = getDatabaseTransactionMgr(dbId); diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgrIface.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgrIface.java index 489b4240d0d..6ee622c9f18 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgrIface.java +++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgrIface.java @@ -39,6 +39,7 @@ import org.apache.doris.transaction.TransactionState.TxnCoordinator; import java.io.DataInput; import java.io.IOException; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeoutException; public interface GlobalTransactionMgrIface extends Writable { @@ -152,6 +153,8 @@ public interface GlobalTransactionMgrIface extends Writable { public List<List<String>> getDbTransInfo(Long dbId, boolean running, int limit) throws AnalysisException; + public Map<Long, List<Long>> getDbRunningTransInfo(long dbId) throws AnalysisException; + public List<List<Comparable>> getTableTransInfo(long dbId, long txnId) throws AnalysisException; public List<List<Comparable>> getPartitionTransInfo(long dbId, long tid, long tableId) diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java index 01fd0a19528..5f26aa63f60 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java @@ -141,8 +141,8 @@ public class ShowDataStmtTest { public void testNormal() throws AnalysisException, UserException { ShowDataStmt stmt = new ShowDataStmt(null, null); stmt.analyze(analyzer); - Assert.assertEquals("SHOW DATA FROM `testDb`", stmt.toString()); - Assert.assertEquals(4, stmt.getMetaData().getColumnCount()); + Assert.assertEquals("SHOW DATA", stmt.toString()); + Assert.assertEquals(5, stmt.getMetaData().getColumnCount()); Assert.assertEquals(false, stmt.hasTable()); SlotRef slotRefOne = new SlotRef(null, "ReplicaCount"); @@ -161,7 +161,7 @@ public class ShowDataStmtTest { stmt = new ShowDataStmt(null, Arrays.asList(orderByElementOne, orderByElementTwo)); stmt.analyze(analyzer); - Assert.assertEquals("SHOW DATA FROM `testDb` ORDER BY `ReplicaCount` DESC, `Size` DESC", + Assert.assertEquals("SHOW DATA ORDER BY `ReplicaCount` DESC, `Size` DESC", stmt.toString()); } } diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java index b3052643d2e..e0bc97f5787 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java @@ -22,6 +22,7 @@ import org.apache.doris.catalog.Env; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.FeConstants; import org.apache.doris.datasource.InternalCatalog; +import org.apache.doris.transaction.GlobalTransactionMgr; import com.google.common.collect.Lists; import mockit.Expectations; @@ -42,6 +43,9 @@ public class DbsProcDirTest { @Mocked private InternalCatalog catalog; + @Mocked + GlobalTransactionMgr transactionMgr; + // construct test case // catalog // | - db1 @@ -154,6 +158,18 @@ public class DbsProcDirTest { minTimes = 0; result = catalog; + env.getGlobalTransactionMgr(); + minTimes = 0; + result = transactionMgr; + + transactionMgr.getRunningTxnNums(db1.getId()); + minTimes = 0; + result = 10; + + transactionMgr.getRunningTxnNums(db2.getId()); + minTimes = 0; + result = 20; + catalog.getDbNames(); minTimes = 0; result = Lists.newArrayList("db1", "db2"); @@ -193,13 +209,13 @@ public class DbsProcDirTest { Assert.assertTrue(result instanceof BaseProcResult); Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Size", "Quota", - "LastConsistencyCheckTime", "ReplicaCount", "ReplicaQuota", "TransactionQuota", "LastUpdateTime"), - result.getColumnNames()); + "LastConsistencyCheckTime", "ReplicaCount", "ReplicaQuota", "TransactionNum", "TransactionQuota", + "LastUpdateTime"), result.getColumnNames()); List<List<String>> rows = Lists.newArrayList(); rows.add(Arrays.asList(String.valueOf(db1.getId()), db1.getFullName(), "0", "0.000 ", "1024.000 TB", - FeConstants.null_string, "0", "1073741824", "1000", FeConstants.null_string)); + FeConstants.null_string, "0", "1073741824", "10", "1000", FeConstants.null_string)); rows.add(Arrays.asList(String.valueOf(db2.getId()), db2.getFullName(), "0", "0.000 ", "1024.000 TB", - FeConstants.null_string, "0", "1073741824", "1000", FeConstants.null_string)); + FeConstants.null_string, "0", "1073741824", "20", "1000", FeConstants.null_string)); Assert.assertEquals(rows, result.getRows()); } @@ -230,7 +246,8 @@ public class DbsProcDirTest { dir = new DbsProcDir(env, catalog); result = dir.fetchResult(); Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Size", "Quota", - "LastConsistencyCheckTime", "ReplicaCount", "ReplicaQuota", "TransactionQuota", "LastUpdateTime"), + "LastConsistencyCheckTime", "ReplicaCount", "ReplicaQuota", "TransactionNum", "TransactionQuota", + "LastUpdateTime"), result.getColumnNames()); List<List<String>> rows = Lists.newArrayList(); Assert.assertEquals(rows, result.getRows()); diff --git a/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java b/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java index 1030fac8071..84a7d6d283d 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java @@ -144,8 +144,7 @@ public class DatabaseTransactionMgrTest { public void testNormal() throws UserException { DatabaseTransactionMgr masterDbTransMgr = masterTransMgr.getDatabaseTransactionMgr(CatalogTestUtil.testDbId1); Assert.assertEquals(4, masterDbTransMgr.getTransactionNum()); - Assert.assertEquals(2, masterDbTransMgr.getRunningTxnNums()); - Assert.assertEquals(1, masterDbTransMgr.getRunningRoutineLoadTxnNums()); + Assert.assertEquals(3, masterDbTransMgr.getRunningTxnNums()); Assert.assertEquals(1, masterDbTransMgr.getFinishedTxnNums()); DatabaseTransactionMgr slaveDbTransMgr = slaveTransMgr.getDatabaseTransactionMgr(CatalogTestUtil.testDbId1); Assert.assertEquals(1, slaveDbTransMgr.getTransactionNum()); @@ -178,14 +177,12 @@ public class DatabaseTransactionMgrTest { long txnId2 = LabelToTxnId.get(CatalogTestUtil.testTxnLabel2); masterDbTransMgr.abortTransaction(txnId2, "test abort transaction", null); Assert.assertEquals(2, masterDbTransMgr.getRunningTxnNums()); - Assert.assertEquals(0, masterDbTransMgr.getRunningRoutineLoadTxnNums()); Assert.assertEquals(2, masterDbTransMgr.getFinishedTxnNums()); Assert.assertEquals(4, masterDbTransMgr.getTransactionNum()); long txnId3 = LabelToTxnId.get(CatalogTestUtil.testTxnLabel3); masterDbTransMgr.abortTransaction(txnId3, "test abort transaction", null); Assert.assertEquals(1, masterDbTransMgr.getRunningTxnNums()); - Assert.assertEquals(0, masterDbTransMgr.getRunningRoutineLoadTxnNums()); Assert.assertEquals(3, masterDbTransMgr.getFinishedTxnNums()); Assert.assertEquals(4, masterDbTransMgr.getTransactionNum()); } @@ -286,8 +283,7 @@ public class DatabaseTransactionMgrTest { long txnId = LabelToTxnId.get(CatalogTestUtil.testTxnLabel1); TransactionState transactionState = masterDbTransMgr.getTransactionState(txnId); masterDbTransMgr.replayDeleteTransaction(transactionState); - Assert.assertEquals(2, masterDbTransMgr.getRunningTxnNums()); - Assert.assertEquals(1, masterDbTransMgr.getRunningRoutineLoadTxnNums()); + Assert.assertEquals(3, masterDbTransMgr.getRunningTxnNums()); Assert.assertEquals(0, masterDbTransMgr.getFinishedTxnNums()); Assert.assertEquals(3, masterDbTransMgr.getTransactionNum()); Assert.assertNull(masterDbTransMgr.unprotectedGetTxnIdsByLabel(CatalogTestUtil.testTxnLabel1)); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org