More Related Content
Similar to 分布式事务概述和对应代码框架介绍.pdf
Similar to 分布式事务概述和对应代码框架介绍.pdf (20)
分布式事务概述和对应代码框架介绍.pdf
- 11. 原子提交:3PC
动机:解决 2PC 的同步阻塞问题
方案:额外引入一个阶段,参与者超时后可自行提交
缺点:
无法保证 safety:为了 liveness 牺牲 safety
延时更高:2 RTT -> 3 RTT
- 12. 原子提交:Spanner
动机:解决 2PC 的同步阻塞问题
方案:结合 Consensus 和 2PC 算法,使得 coordinator 高可用,coordinator 宕机后由新选举出来
的coordinator 决定事务状态
缺点:
延时高:decision log 不仅需要持久化,还需要达成共识
- 13. 原子提交:Percolator
动机:解决 2PC 的同步阻塞问题
方案:结合 Consensus 和 2PC 算法,将 decision log 高可用,coordinator 宕机后由其他事务来
确定性的决定事务状态
缺点:
延时高:decision log 不仅需要持久化,还需要达成共识
- 18. 事件排序:Partial Ordering
Happened Before 关系:
同一进程内的先后事件:r1 -> r2
同一消息的发送和接收事件:r2 -> q7
满足传递定律:r1 -> q7
并不是所有事件具备 Happened Before 关系: 比如 q6
和 r2
本质:存在因果的关系才具有 Happened Before 关系
逻辑时钟:为事件标记逻辑时间戳,反映 Happened
Before 关系即可
问题:如何为所有事件排出一个全序?
- 23. 时钟:HLC
特点:与物理时钟半同步的逻辑时钟,使用 NTP 同步,误差一般在 250ms 以内
核心思想:在不依赖特殊硬件时,为保证低延迟只能弱化一致性级别
不确定窗口处理方案:读时重试
缺点:对于新增 key 无法保证线性化
典型系统:CockRoachDB
异象:T3 有可能只能查到 T2,查不到 T1