diff --git a/common/src/main/java/org/apache/seata/common/ConfigurationKeys.java b/common/src/main/java/org/apache/seata/common/ConfigurationKeys.java index e31bc8e72e2..a35cac0c246 100644 --- a/common/src/main/java/org/apache/seata/common/ConfigurationKeys.java +++ b/common/src/main/java/org/apache/seata/common/ConfigurationKeys.java @@ -138,6 +138,21 @@ public interface ConfigurationKeys { */ String STORE_FILE_DIR = STORE_FILE_PREFIX + "dir"; + /** + * The constant STORE_FILE_ENGINE + */ + String STORE_FILE_ENGINE = STORE_FILE_PREFIX + "engine"; + + /** + * The constant STORE_FILE_ROCKSDB_PREFIX + */ + String STORE_FILE_ROCKSDB_PREFIX = STORE_FILE_PREFIX + "rocksdb."; + + /** + * The constant STORE_FILE_ROCKSDB_DIR + */ + String STORE_FILE_ROCKSDB_DIR = STORE_FILE_ROCKSDB_PREFIX + "dir"; + /** * The constant SERVICE_GROUP_MAPPING_PREFIX. */ diff --git a/common/src/main/java/org/apache/seata/common/store/LockMode.java b/common/src/main/java/org/apache/seata/common/store/LockMode.java index 23abb91ba0a..4a5e5c5e27e 100644 --- a/common/src/main/java/org/apache/seata/common/store/LockMode.java +++ b/common/src/main/java/org/apache/seata/common/store/LockMode.java @@ -32,7 +32,11 @@ public enum LockMode { /** * raft store */ - RAFT("raft"); + RAFT("raft"), + /** + * RocksDB lock mode for file store engine. + */ + ROCKSDB("rocksdb"); private String name; diff --git a/common/src/main/java/org/apache/seata/server/console/entity/param/GlobalSessionParam.java b/common/src/main/java/org/apache/seata/server/console/entity/param/GlobalSessionParam.java index 8327a17433c..df60ad0d748 100644 --- a/common/src/main/java/org/apache/seata/server/console/entity/param/GlobalSessionParam.java +++ b/common/src/main/java/org/apache/seata/server/console/entity/param/GlobalSessionParam.java @@ -30,6 +30,10 @@ public class GlobalSessionParam extends BaseParam implements Serializable { * the xid */ private String xid; + /** + * the transaction id + */ + private Long transactionId; /** * the application id */ @@ -63,6 +67,14 @@ public void setXid(String xid) { this.xid = xid; } + public Long getTransactionId() { + return transactionId; + } + + public void setTransactionId(Long transactionId) { + this.transactionId = transactionId; + } + public String getTransactionName() { return transactionName; } @@ -105,9 +117,13 @@ public void setVgroup(String vgroup) { @Override public String toString() { - return "GlobalSessionParam{" + "xid='" + xid + '\'' + ", applicationId='" + applicationId + '\'' + ", status=" - + status + ", transactionName='" + transactionName + '\'' + ", vgroup='" + vgroup + '\'' - + ", withBranch=" + return "GlobalSessionParam{" + "xid='" + + xid + '\'' + ", transactionId=" + + transactionId + ", applicationId='" + + applicationId + '\'' + ", status=" + + status + ", transactionName='" + + transactionName + '\'' + ", vgroup='" + + vgroup + '\'' + ", withBranch=" + withBranch + '}'; } } diff --git a/common/src/test/java/org/apache/seata/common/store/LockModeTest.java b/common/src/test/java/org/apache/seata/common/store/LockModeTest.java index cff12f3f485..fbae5dd3c4b 100644 --- a/common/src/test/java/org/apache/seata/common/store/LockModeTest.java +++ b/common/src/test/java/org/apache/seata/common/store/LockModeTest.java @@ -27,6 +27,7 @@ void testGetName() { Assertions.assertEquals("db", LockMode.DB.getName()); Assertions.assertEquals("redis", LockMode.REDIS.getName()); Assertions.assertEquals("raft", LockMode.RAFT.getName()); + Assertions.assertEquals("rocksdb", LockMode.ROCKSDB.getName()); } @Test @@ -40,6 +41,8 @@ void testGet() { Assertions.assertEquals(LockMode.REDIS, LockMode.get("REDIS")); Assertions.assertEquals(LockMode.RAFT, LockMode.get("raft")); Assertions.assertEquals(LockMode.RAFT, LockMode.get("Raft")); + Assertions.assertEquals(LockMode.ROCKSDB, LockMode.get("rocksdb")); + Assertions.assertEquals(LockMode.ROCKSDB, LockMode.get("RocksDB")); } @Test @@ -57,6 +60,7 @@ void testContainsValid() { Assertions.assertTrue(LockMode.contains("db")); Assertions.assertTrue(LockMode.contains("redis")); Assertions.assertTrue(LockMode.contains("raft")); + Assertions.assertTrue(LockMode.contains("rocksdb")); } @Test diff --git a/console/src/main/java/org/apache/seata/mcp/entity/dto/McpGlobalSessionParamDto.java b/console/src/main/java/org/apache/seata/mcp/entity/dto/McpGlobalSessionParamDto.java index c7f4c95499c..dbe59d4f710 100644 --- a/console/src/main/java/org/apache/seata/mcp/entity/dto/McpGlobalSessionParamDto.java +++ b/console/src/main/java/org/apache/seata/mcp/entity/dto/McpGlobalSessionParamDto.java @@ -29,6 +29,9 @@ public class McpGlobalSessionParamDto implements Serializable { @McpToolParam(description = "Global transaction ID", required = false) private String xid; + @McpToolParam(description = "Global transaction numeric ID", required = false) + private Long transactionId; + @McpToolParam(description = "applicationId", required = false) private String applicationId; @@ -95,6 +98,14 @@ public void setXid(String xid) { this.xid = xid; } + public Long getTransactionId() { + return transactionId; + } + + public void setTransactionId(Long transactionId) { + this.transactionId = transactionId; + } + public String getTransactionName() { return transactionName; } diff --git a/console/src/main/java/org/apache/seata/mcp/entity/param/McpGlobalSessionParam.java b/console/src/main/java/org/apache/seata/mcp/entity/param/McpGlobalSessionParam.java index 8adaec20cbb..f317098e5be 100644 --- a/console/src/main/java/org/apache/seata/mcp/entity/param/McpGlobalSessionParam.java +++ b/console/src/main/java/org/apache/seata/mcp/entity/param/McpGlobalSessionParam.java @@ -34,6 +34,7 @@ public static McpGlobalSessionParam convertFromDtoParam(McpGlobalSessionParamDto param.setPageNum(paramDto.getPageNum()); param.setStatus(paramDto.getStatus()); param.setXid(paramDto.getXid()); + param.setTransactionId(paramDto.getTransactionId()); param.setApplicationId(paramDto.getApplicationId()); param.setTransactionName(paramDto.getTransactionName()); param.setWithBranch(paramDto.isWithBranch()); diff --git a/console/src/main/resources/static/console-fe/src/pages/TransactionInfo/TransactionInfo.tsx b/console/src/main/resources/static/console-fe/src/pages/TransactionInfo/TransactionInfo.tsx index 54453471612..740972a4b4a 100644 --- a/console/src/main/resources/static/console-fe/src/pages/TransactionInfo/TransactionInfo.tsx +++ b/console/src/main/resources/static/console-fe/src/pages/TransactionInfo/TransactionInfo.tsx @@ -469,6 +469,13 @@ class TransactionInfo extends React.Component } searchFilterOnChange = (key: string, val: string) => { + if (key === 'transactionId') { + const transactionId = val && /^(?!0+$)\d+$/.test(val) ? val : undefined; + this.setState(prevState => ({ + globalSessionParam: { ...prevState.globalSessionParam, transactionId }, + })); + return; + } if (key === 'namespace') { const selectedNamespace = this.state.namespaceOptions.get(val); const clusters = selectedNamespace ? selectedNamespace.clusters : []; @@ -1094,6 +1101,12 @@ class TransactionInfo extends React.Component onChange={(value: string) => { this.searchFilterOnChange('xid', value); }} /> + + { this.searchFilterOnChange('transactionId', value); }} + /> + 3.1.10 4.12.0 2.4.0 + 10.10.1.1 0.12.3 @@ -604,6 +605,11 @@ native-lib-loader ${native-lib-loader.version} + + org.rocksdb + rocksdbjni + ${rocksdbjni.version} + javax.inject javax.inject diff --git a/server/pom.xml b/server/pom.xml index 9de1f407868..9b40d44da33 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -167,6 +167,10 @@ seata-metrics-all ${project.version} + + org.rocksdb + rocksdbjni +