分布式系统reading list(长期更新)
记录一下看过的分布式系统资料
概念
- 时间
- Lamport Clock: 由于NTP不完全准确,因此不同server甚至是同一server的时间都是无法直接比较的,因此我们可以使用logical clock(Lamport clock)。基本思路是每个server维护Lamport clock,server在写的时候increment Lamport clock,并且将增加后的clock返回给client,这样client在多次写的时候这些行为都有order。两个限制 => 1. partial order; 2. 无法使用真实时间推断
- Hybrid Logical Clock: 同时使用真实时间和逻辑时间,Hybrid Logical Clock也可以通过48位真实时间+16位逻辑时间的方法转化为真实时间,解决了Lamport Clock的部分问题
- 分布式系统的时间: 介绍分布式系统中时间的概念以及常用的几种方法,Logical Clock, TrueTime API, Hybrid Logic Clock和Timestamp Oracle
分布式事务
- Percolator
- Percolator论文
- Percolator论文阅读笔记: 比较详细地描述了Percolator中对2PC的实现以及oberserver机制
- Google Percolator 的事务模型
- Percolator in TiKV: 介绍Percolator模型以及TiKV的实现
- Optimized Percolator in TiKV: 提到了对Percolator的几种优化,parallel prewrite,short value in write column和point read without timestamp
- Two-phase Commit
分布式数据库
- Spanner
- Martin Kleppmann on Spanner:DDIA的作者高屋建瓴介绍spanner,侧重于spanner中事务的实现以及TrueTime API带来的causality consistency
- TiDB
- 三篇文章了解 TiDB 技术内幕 - 说存储: TiKV怎样以key-value的形式高效稳定存储数据
- 三篇文章了解 TiDB 技术内幕 - 说计算: TiDB怎样实现关系模型与key-value模型的映射以及TiDB架构
- 三篇文章了解 TiDB 技术内幕 - 谈调度: PD的作用以及原理