【7】Statement Queue
背景
MySQL 的 server 层和引擎层在 statement 并发执行过程中,有很多串行化的点,在 DML 语句中,事务锁冲突比较常见,InnoDB 中事务锁的最细粒度是行级锁,如果语句针对相同行进行并发操作,会导致冲突比较严重,系统吞吐量会随着并发的增加而递减。
AliSQL 设计了针对语句的排队机制,相同的行或者不同的语句进行分桶排队,尽可能的把具有相同冲突可能的在一个桶内排队,减少 conflict 的开销。
语法
变量
系统提供了两个变量来定义 CCL queue 的 bucket 数量和大小。
1. ccl_queue_bucket_count
表示:一共有多少个bucket, 默认值:4,取值范围:[1, 64]
2. ccl_queue_bucket_size
表示:一个 bucket 允