有奖捉虫:云通信与企业服务文档专题,速来> HOT

功能介绍

TXSQL 新增一种新的并发事务调度算法(Contention-Aware Transaction Scheduling,CATS),可自动感知事务直接锁冲突并根据事务的优先级来调度事务执行。 MySQL 原有的并发事务是采用 FIFO(First-In-First-Out)规则来决定事务执行顺序的,而 CATS 事务调度算法的主要原理是根据事务持有锁的情况来判断并发事务的冲突情况,并决定事务执行的优先级,而后,根据优先级来安排事务的执行顺序,从而提升系统事务处理的吞吐量。

支持版本

内核版本 MySQL 5.7 20190203 及以上
内核版本 MySQL 8.0 20200630 及以上

适用场景

主要适用于高并发并且锁冲突比较严重的场景。

性能数据

高并发,锁冲突严重的场景下有50%以上的 TPS 性能提升。
测试方法:sysbench-oltp_read_write 场景(RR 隔离级别,8张表10MB条数据,pareto 随机模式)
测试环境:32核128GB线上实例
线程数
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。 其中,算法有三种:
auto:自动,根据当前系统状况自动调整。当锁等待线程数超过32个时采用 CATS 调度算法,否则采用 FCFS 算法。
fcfs:先来先服务算法。
cats:冲突感知调度算法。
参数名
动态
类型
默认
参数值范围
说明
innodb_trx_schedule_algorithm
yes
string
auto
[auto,fcfs,cats]
事务等待调度算法
说明:
用户目前无法直接修改参数 innodb_trx_schedule_algorithm 的参数值,如需修改可 提交工单 进行修改。
MySQL 8.0 版本固定采用 auto 算法,不可设置。