TiDB两阶段提交(乐观事务与悲观事务)

本文介绍了TiDB的乐观事务和悲观事务,详细解析了两阶段提交过程。乐观事务在冲突少的情况下能提高性能,而悲观事务通过加锁保证数据安全。TiDB默认使用悲观事务模型,但在高并发场景下,乐观事务可能更具优势。文中还讨论了悲观事务的Pipelined加锁流程及其潜在影响。
摘要由CSDN通过智能技术生成
学习TiDB事务的底层原理思想,总结一下自己的理解

官方文档

乐观事务:

一种与传统分布式事务不同的解决方案,不一定会加锁,能够实现跨节点的分布式事务安全,如果写冲突不频繁,那么可以通过跳过获取行锁而提高性能,如果写同一行冲突频繁,性能会低于悲观事务

下面请对照着官网的一张图,配合理解乐观事务的实现
在这里插入图片描述

(1)客户端事务开始,TiDB接到begin后,向PD管理层申请一个time stamp (下面简称ts)做为事务起始编号 start_ts .
(2)执行客户端SQL:
1:读请求,则先向PD获取Region的分散存储记录,找到对应的KV节点查询相关数据,同时把该数据结果保存到TiDB内存中,设置版本号为start_ts, 从此该事务session的数据就有了MVCC版本控制
2:写操

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值