TXSQL 新增一种新的并发事务调度算法(Contention-Aware Transaction Scheduling,CATS),可自动感知事务直接锁冲突并根据事务的优先级来调度事务执行。
MySQL 原有的并发事务是采用 FIFO(First-In-First-Out)规则来决定事务执行顺序的,而 CATS 事务调度算法的主要原理是根据事务持有锁的情况来判断并发事务的冲突情况,并决定事务执行的优先级,而后,根据优先级来安排事务的执行顺序,从而提升系统事务处理的吞吐量。
主要适用于高并发并且锁冲突比较严重的场景。
高并发,锁冲突严重的场景下有50%以上的 TPS 性能提升。
线程数 | FCFS(FIFO) | CATS | 性能提升 |
---|---|---|---|
128 | 11999 | 12005 | 0% |
256 | 6609 | 10137 | 53% |
512 | 3453 | 9365 | 171% |
1024 | 2196 | 7015 | 219% |
MySQL 5.7 版本可以通过全局参数 innodb_trx_schedule_algorithm 来指定事务调度算法,该参数缺省值是 auto。
其中,算法有三种:
参数名 | 动态 | 类型 | 默认 | 参数值范围 | 说明 |
---|---|---|---|---|---|
innodb_trx_schedule_algorithm | yes | string | auto | [auto,fcfs,cats] | 事务等待调度算法 |
说明:用户目前无法直接修改以上参数的参数值,如需修改可 提交工单 进行修改。
MySQL 8.0 版本固定采用 auto 算法,不可设置。
本页内容是否解决了您的问题?