Seata v1.4.0 Release Notes

Release Date: 2020-11-02 // 12 months ago
  • πŸš€ Seata 1.4.0 Released.

    🐎 Seata is an easy-to-use, high-performance, open source distributed transaction solution.

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ”§ [#2380] support yml configuration
    • πŸ‘ [#3191] support jdbc type nclob
    • πŸ‘ [#2676] support least active load balance
    • πŸ‘ [#3198] spring boot support for custom config and registry type
    • πŸ”§ [#2806] support configuring default global transaction timeoutMillis
    • πŸ”§ [#2941] add apollo secret key configuration
    • πŸ‘ [#2080] support ConsistentHashLoadBalance
    • πŸ”’ [#2950] support the reentrant lock in redis module
    • [#2913] The data source proxy mode can be selected as AT or XA
    • πŸ‘ [#2856] support for undoLog using Fst serialization
    • πŸ”’ [#3076] check lock in TC when use @GlobalLock
    • πŸ‘ [#2825] support send authentication msg
    • πŸ”’ [#2962] @GlobalTransactional and @GlobalLock can support customize lock retry config

    πŸ›  bugfix:

    • [#3214] fix the 'RootContext.DEFAULT_BRANCH_TYPE' is wrong in some cases
    • ⚑️ [#3129] forbidding execute SQL which update pk value
    • πŸ”§ [#3205] fix can not get boolean value in configuration
    • [#3170] the disposables tree set won't accept another Disposable with the same priority
    • πŸ“¦ [#3180] serializer fst package name error
    • 🚚 [#3178] remove next line to space
    • ⬆️ [#2929] fix the application was configured to degrade at startup and can't be dynamically switch to upgraded
    • ⚑️ [#3050] fix fetch before images when delete and update statements
    • [#2935] fix saga designer bug that the property box does not switch when switching nodes
    • [#3140] fix Propagation.REQUIRES_NEW and add some comments
    • [#3130] fix some problems in the automatic data source proxy
    • πŸ”’ [#3148] the redis lock key and the session key has conflict
    • [#3136] fix the redis pipeline
    • [#2551] Saga can't be used when the dataSource is AT's dataSourceProxy
    • [#3073] do not proxy connections without an xid
    • [#3074] There is no need to retry if the XA schema cannot find the XID
    • [#3097] fix HttpAutoConfiguration always instantiation in springboot env
    • [#3071] part of the connection is not unpacked
    • πŸ”’ [#3056] fixed a bug that after branch deletion, there are still remaining branch lock
    • πŸ“¦ [#3025] fix the wrong package path
    • πŸ”’ [#3031] redis locker delete lock incomplete
    • [#2973] fix oracle database in field size over 1000
    • πŸ’… [#2986] fix checkstyle plugin can't exclude single file
    • [#2910] fix error registry type comment
    • [#2914] fix branchType not cleaned when consumer is in TCC mode
    • πŸ“œ [#2926] fastjson write undo log not parser
    • [#2897] fix jedis unlock fail
    • βͺ [#2918] fix the isolation problem when rollback in AT mode
    • [#2972] UUIDGenerator generates duplicated id
    • [#2932] nacos-config.py script could not run with namespace
    • [#2900] ColumnUtils add escape with scheme
    • [#2904] fix getConfig cache value is 'null'
    • [#2890] fix misspelling in statelang examples
    • [#3040] fix repeated commit when autocommit is false
    • [#3230] fix use @EnableAutoDataSourceProxy startup failed
    • [#2979] columns of resultset integrated with sharingjdbc need to be lowercase
    • [#3233] fix Collections NPE
    • [#3242] fix batch sql getTableMeta error
    • πŸ‘» [#3246] fix the exception when limit condition contains VariantRefExpr

    ⚑️ optimize:

    • ♻️ [#3062] refactor the redis session store
    • ⚑️ [#3201] optimize the wrong stack not fully display
    • 🚚 [#3117] make log more clearly and remove the useless code
    • ⚑️ [#3134] optimize codes related to Map and List
    • ⚑️ [#3195] optimize XID related codes
    • ⚑️ [#3200] optimize rpc message when message was substring
    • 🚚 [#3186] remove duplicated in string utils
    • 🚚 [#3162] remove repeated conditional tests
    • ⬆️ [#2969] upgrade to druid 1.1.23
    • ⬆️ [#3141] upgrade nacos and FastJSON dependencies
    • πŸ“‡ [#3118] add more configuration tips in additional-spring-configuration-metadata.json
    • [#2597] judging xid status to avoid repeated processing
    • ⚑️ [#3102] optimize ContextCore, can be set 'Object' value
    • ♻️ [#3016] refactor the redis lock string to hash
    • 🚚 [#3046] remove unused code in serializer factory
    • πŸ”§ [#3053] jedis pool adds maxtotal configuration
    • 🚚 [#3012] remove set port repeatedly
    • ⚑️ [#2978] optimize globalCommit for mixed use of AT and TCC
    • [#2967] replace with lambda
    • [#2968] ensure that the register message is sent after RM client initialization
    • ⚑️ [#2945] optimize async commit and reduce one update
    • πŸ“‡ [#2952] optimize additional-spring-configuration-metadata.json
    • ⚑️ [#2920] optimize some grammatical errors
    • πŸ”§ [#2906] added some configuration items to keep consistent with official documents
    • ⚑️ [#3222] optimize fileListener to decrease cpu time usage
    • 🚚 [#2843] removed Reloadable from the redis/db SessionManager
    • [#3209] add using company logos

    Thanks to these contributors for their code commits. Please report an unintended omission.

    Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.


Previous changes from v1.3.0

  • πŸš€ Seata 1.3.0 Released.

    🐎 Seata is an easy-to-use, high-performance, open source distributed transaction solution.

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ‘ [#2398] support multi pk for MySQL
    • πŸ‘ [#2484] store mode support redis
    • πŸ‘ [#2817] Saga StateMachine engine and Designer support Groovy Script Task
    • πŸ‘ [#2646] server support for HikariCP
    • ⬇️ [#2253] support for dynamic upgrade and downgrade
    • πŸ‘ [#2565] support for transaction annotations on classes
    • πŸ‘ [#2510] support LZ4 compressor
    • πŸ‘ [#2622] support version valid check
    • πŸ‘ [#2658] dataSources support different permissions of Oracle users
    • πŸ”§ [#2620] support group configuration in Nacos registry
    • [#2699] compatible with ACM
    • ⚑️ [#2509] support for undo full data columns on update operate
    • πŸ‘ [#2584] StateHandlerInterceptor and StateRouterInterceptor support SPI
    • πŸ‘ [#2808] server check auth support SPI
    • [#2616] TCC adapter for Dubbo And Sofa reference annotation
    • πŸ“œ [#2831] Saga support jackson json parser
    • πŸ‘ [#2554] support zk serializer
    • πŸ‘ [#2708] support jdbc type array, datalink etc
    • πŸ‘ [#2412] xid generation strategy support snowflake
    • πŸ”§ [#2611] support the cache of configuration values

    πŸ›  bugfix:

    • [#2893] fix get table meta failed in postgresql
    • [#2887] fix rm client receive response logic
    • [#2610] nacos-script adapt to Nacos 1.2 on permission control
    • πŸ’… [#2588] fix when the check_style does not pass, no detail information output
    • 🚦 [#2543] fix ApplicationKeeper ShutdownHook signal invalid.
    • [#2598] fix unable to register Nacos
    • [#2618] fix could not create folder in zookeeper
    • [#2628] fix get tableName and alias error in mysql delete
    • πŸ’… [#2639] fix Apollo configuration load fail due to camel style
    • [#2629] fix duplicated resource id with different currentSchema in PostgreSQL
    • [#2659] fix mysql insert use select last_insert_id is undo_log id value
    • [#2670] fix dataSource initialize more times
    • [#2617] fix incorrect getAnnotation about class and method
    • [#2603] fix can't get generated keys value.
    • [#2725] fix other expression before insert row primary key.
    • [#2698] fix nested GlobalLock unbind prematurely
    • βͺ [#2755] fix not return value when branchCommit and branchRollback throw exception
    • βͺ [#2777] fix can't rollback when set rollback retry count was zero.
    • [#2812] fix get PostgreSQL tableMeta error when using shardingSphere
    • βͺ [#2760] fix TM rollback fail throw the seata exception, rollback retrying throw NPE
    • [#2837] fix wrong constant used in the saga SubStateMachineHandler
    • πŸ‘» [#2839] fix business exception is lost when compensation succeed in saga mode
    • πŸ“œ [#2650] fix TCC and Saga branches will also parse SQL in AbstractConnectionProxy
    • [#2850] Fix Saga designer rounded polylines cause page crashes
    • [#2868] fix can't find AsyncEventBus dependency
    • [#2871] fix get tableMeta failed when table name like 'schame'.'table'
    • [#2685] fix oracle insert sql use sysdate error.
    • [#2872] fix missing escape char in the primary key for the undo sql
    • [#2875] fix ColumnUtils delEscape with scheme error

    ⚑️ optimize:

    • [#2573] replace Random with ThreadLocalRandom in RandomLoadBalance
    • ♻️ [#2540] refactor rpc request method and rpc interface
    • ⚑️ [#2642] optimize unsafe double-checked locking in SofaRegistryServiceImpl
    • [#2561] keep the same logic of get tableMeta
    • 0️⃣ [#2591] support the default timeout for zookeeper register
    • πŸ“¦ [#2601] repackage spring-boot-starter
    • [#2415] distinguish database behavior according to the branch type
    • 🚚 [#2647] remove the unused variable
    • ⚑️ [#2649] optimize get tableMeta
    • πŸ‘ [#2652] consul supports custom port
    • πŸ‘· [#2660] modify IdWorker position to make it reasonable
    • πŸ’… [#2625] polish testing code, replace with Mockito.verify
    • [#2666] add using users organization logos
    • πŸ‘• [#2680] Change GlobalTransactionalInterceptor to singleton
    • ⚑️ [#2683] optimize TccActionInterceptor log print
    • ♻️ [#2477] refactoring client request processing logic.
    • ♻️ [#2280] refactor InsertExecutor
    • 🐎 [#2044] optimize ColumnUtils.addEscape method performance
    • ⚑️ [#2730] optimize get config type from configuration
    • ⚑️ [#2723] optimize get tableMeta in postgreSql
    • [#2734] change postgreSql driver scope to provide
    • ⚑️ [#2749] optimize logger class misWrite
    • [#2751] copy jdbc driver to image
    • ⚑️ [#2759] optimized the generation rules of thread name factory
    • πŸ‘ [#2607] support insert pkValue support check
    • ⚑️ [#2765] optimize the processing logic of XA's RM for unsupported transaction resources.
    • βœ… [#2771] disable unstable unit tests
    • [#2779] CollectionUtils.decodeMap method variables ConcurrentHashMap refact to HashMap
    • ♻️ [#2486] refactor server handle request process logic from client
    • πŸ‘ [#2770] TCC two phase method return type supports void
    • ⚑️ [#2788] optimize server log pattern and support for colored log
    • ⚑️ [#2816] optimize create clazz instance
    • πŸ‘· [#2787] modify workerId generation method
    • ⚑️ [#2776] optimize paramsPlaceHolder generate by StringUtils.repeat()
    • [#2799] code opt format
    • ⬇️ [#2829] downgrade check unlock and asynchronous
    • ✏️ [#2842] code opt format about the sqls and typos
    • ⚑️ [#2242] optimize PreparedStatementProxy initialization logic
    • [#2613] fix typo and some coding guidelines

    Thanks to these contributors for their code commits. Please report an unintended omission.

    Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.