Seata 1.6.0 Released with Significant Performance Improvement
Seata is an open-source distributed transaction solution that provides high performance and easy-to-use distributed transaction services.
Download Links for seata-server:
Updates in this version:
feature:
- [#4863] Support for multiple primary keys in Oracle and PostgreSQL
- [#4649] Support for multiple registry centers in seata-server
- [#4779] Support for Apache Dubbo3
- [#4479] TCC annotations can now be added to interfaces and implementation classes
- [#4877] Client SDK supports JDK17
- [#4914] Support for update join syntax for MySQL
- [#4542] Support for Oracle timestamp type
- [#5111] Support for Nacos contextPath configuration
- [#4802] Dockerfile supports arm64
Bug Fixes:
- [#4780] Fixed the issue where TimeoutRollbacked event wasn't sent after a successful timeout rollback.
- [#4954] Fixed NullPointerException when the output expression was incorrect.
- [#4817] Fixed the problem with non-standard configuration in higher versions of Spring Boot.
- [#4838] Fixed the issue where undo log wasn't generated when using Statement.executeBatch().
- [#4533] Fixed inaccurate metric data caused by duplicate events handling for handleRetryRollbacking.
- [#4912] Fixed the issue where mysql InsertOnDuplicateUpdate couldn't correctly match column names due to inconsistent case.
- [#4543] Fixed support for Oracle nclob data type.
- [#4915] Fixed the problem of not obtaining ServerRecoveryProperties attributes.
- [#4919] Fixed the issue where XID's port and address appeared as null:0.
- [#4928] Fixed NPE issue in rpcContext.getClientRMHolderMap.
- [#4953] Fixed the issue where InsertOnDuplicateUpdate could bypass primary key modification.
- [#4978] Fixed kryo support for cyclic dependencies.
- [#4985] Fixed the issue of duplicate undo_log id.
- [#4874] Fixed startup failure with OpenJDK 11.
- [#5018] Fixed server startup failure issue due to loader path using relative path in startup script.
- [#5004] Fixed the issue of duplicate row data in mysql update join.
- [#5032] Fixed the abnormal SQL statement in mysql InsertOnDuplicateUpdate due to incorrect calculation of condition parameter fill position.
- [#5033] Fixed NullPointerException issue in SQL statement of InsertOnDuplicateUpdate due to missing insert column field.
- [#5038] Fixed SagaAsyncThreadPoolProperties conflict issue.
- [#5050] Fixed the issue where global status under Saga mode wasn't correctly changed to Committed.
- [#5052] Fixed placeholder parameter issue in update join condition.
- [#5031] Fixed the issue of using null value index as query condition in InsertOnDuplicateUpdate.
- [#5075] Fixed the inability to intercept SQL statements with no primary key and unique index in InsertOnDuplicateUpdate.
- [#5093] Fixed accessKey loss issue after seata server restart.
- [#5092] Fixed the issue of incorrect AutoConfiguration order when seata and jpa are used together.
- [#5109] Fixed NPE issue when @GlobalTransactional is not applied on RM side.
- [#5098] Disabled oracle implicit cache for Druid.
- [#4860] Fixed metrics tag override issue.
- [#5028] Fixed null value issue in insert on duplicate SQL.
- [#5078] Fixed interception issue for SQL statements without primary keys and unique keys.
- [#5097] Fixed accessKey loss issue when Server restarts.
- [#5131] Fixed issue where XAConn cannot rollback when in active state.
- [#5134] Fixed issue where hikariDataSource auto proxy fails in some cases.
- [#5163] Fixed compilation failure in higher versions of JDK.
Optimization:
- [#4681] Optimized the process of competing locks.
- [#4774] Optimized mysql8 dependency in seataio/seata-server image.
- [#4750] Optimized the release of global locks in AT branch to not use xid.
- [#4790] Added automatic OSSRH github action publishing.
- [#4765] XA mode in mysql8.0.29 and above no longer holds connection to the second phase.
- [#4797] Optimized all github actions scripts.
- [#4800] Added NOTICE file.
- [#4761] Used hget instead of hmget in RedisLocker.
- [#4414] Removed log4j dependency.
- [#4836] Improved readability of BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) method.
- [#4865] Fixed security vulnerabilities in Saga visualization designer GGEditor.
- [#4590] Dynamic configuration support for automatic degradation switch.
- [#4490] Optimized tccfence record table to delete by index.
- [#4911] Added header and license checks.
- [#4917] Upgraded package-lock.json to fix vulnerabilities.
- [#4924] Optimized pom dependencies.
- [#4932] Extracted default values for some configurations.
- [#4925] Optimized javadoc comments.
- [#4921] Fixed security vulnerabilities in console module and upgraded skywalking-eyes version.
- [#4936] Optimized storage configuration reading.
- [#4946] Passed SQL exceptions encountered when acquiring locks to the client.
- [#4962] Optimized build configuration and corrected base image of docker image.
- [#4974] Removed limitation on querying globalStatus quantity under redis mode.
- [#4981] Improved error message when tcc fence record cannot be found.
- [#4995] Fixed duplicate primary key query conditions in the SQL statement after mysql InsertOnDuplicateUpdate.
- [#5047] Removed unused code.
- [#5051] When undolog generates dirty write during rollback, throw exception BranchRollbackFailed_Unretriable.
- [#5075] Intercept insert on duplicate update statements without primary keys and unique indexes.
- [#5104] ConnectionProxy is no longer dependent on druid.
- [#5124] Support deleting TCC fence record table for oracle.
- [#4468] Support kryo 5.3.0.
- [#4807] Optimized image and OSS repository publishing pipelines.
- [#4445] Optimized transaction timeout judgment.
- [#4958] Optimized execution of triggerAfterCommit() for timeout transactions.
- [#4582] Optimized transaction sorting in redis storage mode.
- [#4963] Added ARM64 pipeline CI testing.
- [#4434] Removed seata-server CMS GC parameters.
Testing:
- [#4411] Tested Oracle database AT mode type support.
- [#4794] Refactored code and attempted to fix unit test
DataSourceProxyTest.getResourceIdTest()
. - [#5101] Fixed ClassNotFoundException issue in zk registration and configuration center
DataSourceProxyTest.getResourceIdTest()
.
Special thanks to the following contributors for their code contributions. If there are any unintentional omissions, please report.
- slievrly
- renliangyu857
- wangliang181230
- funky-eyes
- tuwenlin
- conghuhu
- a1104321118
- duanqiaoyanyu
- robynron
- lcmvs
- github-ganyu
- 1181954449
- zw201913
- wingchi-leung
- AlexStocks
- liujunlin5168
- pengten
- liuqiufeng
- yujianfei1986
- Bughue
- AlbumenJ
- doubleDimple
- jsbxyyx
- tuwenlin
- CrazyLionLi
- whxxxxx
- neillee95
- crazy-sheep
- zhangzq7
- l81893521
- zhuyoufeng
- xingfudeshi
- odidev
- miaoxueyu
At the same time, we have received many valuable issues and suggestions from the community, and we are very grateful to everyone.
Link
- Seata: https://github.com/apache/incubator-seata
- Seata-Samples: https://github.com/apache/incubator-seata-samples
- Release: https://github.com/apache/incubator-seata/releases
- WebSite: https://seata.apache.org