课程名称:(201)2.3.5 How to Use Transactions in TiDB(如何在 TiDB 中使用事务)
学习时长:20min
课程收获:通过本节课程学习,应当对事务的基本概念和作用有较为清晰的认识;了解 TiDB 分布式事执行的两阶段提交的执行过程,TiDB 和 TiKV 等组件的交互方式;掌握 TiDB 两种事务模式(乐观事务和悲观事务)的使用方法;理解两者的不同并可以根据具体的业务场景评估和选择 TiDB 的事务模式、隔离级别等。
课程内容: 事务;并发控制;两阶段提交;乐观事务;悲观事务;隔离级别
分布式事务模型:启发于 Google percolator 论文;采用 SS2PL + MVCC 的并发控制策略;两阶段提交
乐观事务模式:采用 Snapshot Isolation 级别(SI);采用事务调度器 scheduler;数据修改缓存在 TiDB 内存中;提交时进行冲突检测(写-写冲突)
悲观事务模式:支持当前读;DML 操作提前加锁;减少写-写冲突;支持 Read-committed 事务隔离级别(RC)
乐观事务:
开启事务:begin,start transaction
提交事务:commti,rollback
配置参数 autocommit = 1 开启事务自动提交
begin 语句会进行隐式提交,并启动一个新事务
DDL 语句会隐式提交事务
学习过程中参考的其他资料
无