暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

TiDB PCTP 备战--TiDB 数据库事务设计

原创 张玉龙 2022-03-24
731

分布式事务基本原理

事务定义

事务是在数据库上进行的一系列操作的集合,是数据改变的不可分割的基本单位。

  • 原子性(atomicity, 或称不可分割性)
  • 一致性(consistency)
  • 隔离性(isolation,又称独立性)
  • 持久性(durability)

隔离级别

202203165c8942ff87034642a42cacabf70f17df.png

  • 脏读
    • 事务 A 修改了数据 data,但并未提交;
    • 与此同时事务 B 读到了 data 的修改,称为脏读。
  • 不可重复读
    • 在事务 A 的两次读 data 之间,事务 B 访问了数据 data,并修改了 data,并进行了提交。
    • 如果事务 A 的前后两次读由于事务 B 的修改,导致的不一致称为不可重复读。
  • 幻读
    • 与不可重复读的主要差别在于幻读是涉及插入操作,而不可重复读主要是更新。
    • 事务 A 读某一范围数据并进行了修改,与此同时事务 B 在该范围新增一行 insert data。
    • 事务 A 可重复读,能读到原数据,但提交时发现有之前未查到的数据 insert data。

未提交读 (Read Uncommited)

image.png

提交读 (Read Committed)

image.png

可重复读 (Repeatable Read)

image.png
image.png

隔离级别与现象

image.png

事务在分布式系统的挑战

image.png

TCC

202203165c8942ff87034642a42cacabf70f17df.png
202203165c8942ff87034642a42cacabf70f17df.png

SAGA

202203165c8942ff87034642a42cacabf70f17df.png
202203165c8942ff87034642a42cacabf70f17df.png

2PC (Two-Phase Commit)

202203165c8942ff87034642a42cacabf70f17df.png

Percolator 事务模型原理

Percolator 背景

image.png

快照隔离级别(Snapshot Isolation)

image.png

分布式时钟

image.png

Percolator 事务执行流程

image.png
image.png
image.png
image.png
image.png

Percolator 案例

image.png
image.png
image.png
image.png
image.png

TiDB 事务的实现方式与优化

TiDB 数据库事务实现 – 事务在 TiDB 中的存储

202203165c8942ff87034642a42cacabf70f17df.png

事务执行过程

202203165c8942ff87034642a42cacabf70f17df.png

  • Prewrite 版本检查
    image.png
  • Prewrite 锁冲突检测
    image.png
  • Prewrite 加锁
    image.png
  • commit 锁检查与提交
    image.png
    image.png

TiDB 数据库悲观锁

image.png

  • DML 上锁
    image.png
    image.png
    image.png
  • Prewrite
    image.png
  • Commit
    image.png
    image.png

事务的去中心化

202203165c8942ff87034642a42cacabf70f17df.png

TiDB 数据库事务优化

  • TiDB 数据库的锁
    image.png
  • 写偏斜 (write skew)
    202203165c8942ff87034642a42cacabf70f17df.png
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论