Skip to content

分布式专栏导览 ​

标签
分布式
字数
1199 字
阅读时间
5 分钟

本专栏收录分布式系统的基础理论:一致性的取舍、副本的组织方式、以及没有全局时钟时事件顺序怎么定义。

本层是整棵子树的容器。四类专项各自成目录:时钟(时间怎么定义)、一致性共识算法(节点怎么达成一致)、分布式事务(跨节点操作怎么保证原子)、区块链共识(链场景下的共识选型)。另有四个目录承载“用这些理论造出来的具体系统”:分布式存储、P2P 与路由、集群与运维、分布式计算。

目录 ​

  • 01 · CAP 定理 —— 三选二的实际含义、为什么不存在 CA、Gilbert-Lynch 的证明与它依赖的网络模型,以及 Brewer 2012 修正与 PACELC
  • 02 · BASE 理论 —— 可用性怎么被放大、组件降级的手法,以及四步 SQL 改写
  • 03 · 一致性模型 —— 线性 / 顺序 / 因果 / 最终一致性的定义与判据、Herlihy-Wing 的形式化与三条定理、会话保证,以及它们与 CAP 的对应
  • 04 · 一致性哈希算法 —— 哈希环、扩容缩容、数据倾斜与虚拟节点,以及原始出处给出的四个评判指标与重映射界

子专栏:

  • 时钟 —— 时间怎么定义:物理时钟、逻辑时钟、全局快照与几种专门的时钟算法
  • 一致性共识算法 —— 节点怎么达成一致:FLP 不可能性、Paxos、Raft、Zab、拜占庭容错
  • 分布式事务 —— 跨节点操作怎么保证原子:XA、TCC、Saga
  • 区块链共识 —— 链场景下的选型:公链的 PoW / PoS / DPoS、私链与联盟链的 PBFT / PoA
  • 分布式存储 —— 十二种存储实现:文件系统、宽表、KV、关系型、对象存储
  • P2P 与路由 —— 结构化覆盖网与分布式哈希表:CAN、Chord、Pastry、Kademlia
  • 集群与运维 —— 把一堆机器当成一台机器:协调服务、集群调度、链路追踪
  • 分布式计算 —— 计算怎么被组织成可并行、可恢复的形状:内存计算、图计算、交互式分析、流处理

阅读顺序 ​

阅读顺序覆盖整棵子树,子专栏按内容依赖穿插在本层笔记之间:

01 → 02 → 03 → 时钟 → 04 → 一致性共识算法 → 分布式事务 → 区块链共识

01 是理论总纲;03 建立在 01 之上,正文里两处直接引用 CAP 的 C 与 A。03 与 01 之间不宜插读其他内容。

时钟接在 03 后面:03 讲的因果一致性,技术定义正是 Lamport 时钟 与 向量时钟 给的,两边互为前提。

04 是分界线:01 → 03 与时钟讲的都是「一致性的语义怎么定义」,04 起转到「数据与算法怎么组织」—— 数据怎么落到节点上,节点之间怎么达成一致,跨节点操作怎么保证原子(后两者见上面的子专栏)。

四个实现类目录排在最后:它们讲的是用这些理论造出来的具体系统,读完理论再看实现,对照关系最清楚。四者内部按「存储 → 计算 → P2P 与路由 → 集群与运维」走 —— 存储与计算是主线,另两条是支线。

集群与运维这条支线是横切:它不管数据怎么放、也不管节点怎么达成一致,只回答「任务放哪、谁来发现彼此、出了问题怎么看见」。三篇里 Chubby 提供最底层的协调原语,Borg 是搭在它上面的调度层,Dapper 是横切在两者之上的观测层;读完存储与共识再看它,能看清前两类系统在真实机队里是被什么托着的。

贡献者 ​

文件历史 ​