没有合适的资源?快使用搜索试试~ 我知道了~
首页刘杰-分布式系统原理介绍
刘杰-分布式系统原理介绍
需积分: 50 237 浏览量
更新于2023-05-20
评论
收藏 2.82MB PDF 举报
刘杰的分布式系统原理介绍 分布式系统理论体系非常庞大,涉及知识面也非常广博,由于笔者的肤浅,本文精心选择了部 分在工程实践中应用广泛、简单有效的分布式理论、算法、协议加以介绍。全文分为两大部分,第 一部分介绍了分布式系统的一些基本概念并框定了本文的问题模型和问题域,作为后续章节的基础。 第二部分介绍了一些分布式系统的理论,在介绍这些理论时,注重引入实例并加以应用,同时将这 些理论投影到真实的系统中
资源详情
资源评论
资源推荐

分布式系统原理介绍
刘 杰

目录
前言 ................................................................................................................................................................. 1
1 概念 ............................................................................................................................................................. 2
1.1 模型 .................................................................................................................................................. 2
1.1.1 节点 ....................................................................................................................................... 2
1.1.2 通信 ....................................................................................................................................... 2
1.1.3 存储 ....................................................................................................................................... 2
1.1.4 异常 ....................................................................................................................................... 3
1.2 副本 .................................................................................................................................................. 8
1.2.1 副本的概念 ........................................................................................................................... 8
1.2.2 副本一致性 ........................................................................................................................... 8
1.3 衡量分布式系统的指标 .................................................................................................................. 9
1.3.1 性能 ....................................................................................................................................... 9
1.3.2 可用性 ................................................................................................................................... 9
1.3.3 可扩展性 ............................................................................................................................... 9
1.3.4 一致性 ................................................................................................................................. 10
2 分布式系统原理 ....................................................................................................................................... 11
2.1 数据分布方式 ................................................................................................................................ 11
2.1.1 哈希方式 ............................................................................................................................. 11
2.1.2 按数据范围分布 ................................................................................................................. 13
2.1.3 按数据量分布 ..................................................................................................................... 14
2.1.4 一致性哈希 ......................................................................................................................... 14
2.1.5 副本与数据分布 ................................................................................................................. 16
2.1.6 本地化计算 ......................................................................................................................... 18
2.1.7 数据分布方式的选择 ......................................................................................................... 18
2.1.8 工程投影 ............................................................................................................................. 18
2.2 基本副本协议 ................................................................................................................................ 20
2.2.1 中心化副本控制协议 ......................................................................................................... 20
2.2.2 primary-secondary 协议 ....................................................................................................... 20
2.2.3 去中心化副本控制协议 ..................................................................................................... 23
2.2.4 工程投影 ............................................................................................................................. 24
2.3 Lease 机制....................................................................................................................................... 26
2.3.1 基于 lease 的分布式 cache 系统 ........................................................................................ 26
2.3.2 lease 机制的分析 ................................................................................................................. 28
2.3.3 基于 lease 机制确定节点状态 ........................................................................................... 29
2.3.4 lease 的有效期时间选择 ..................................................................................................... 30
2.3.5 工程投影 ............................................................................................................................. 30
2.4 Quorum 机制................................................................................................................................... 33
2.4.1 约定 ..................................................................................................................................... 33
2.4.2 Write-all-read-one ................................................................................................................ 33
2.4.3 Quorum 定义 ........................................................................................................................ 34
2.4.4 读取最新成功提交的数据 ................................................................................................. 35
2.4.5 基于 Quorum 机制选择 primary ........................................................................................ 36

2.4.6 工程投影 ............................................................................................................................. 37
2.5 日志技术 ........................................................................................................................................ 41
2.5.1 数据库系统日志技术简述 ................................................................................................. 41
2.5.2 Redo Log 与 Check point ..................................................................................................... 41
2.5.3 No Undo/No Redo log .......................................................................................................... 43
2.5.4 工程投影 ............................................................................................................................. 44
2.6 两阶段提交协议 ............................................................................................................................ 45
2.6.1 问题背景 ............................................................................................................................. 45
2.6.2 流程描述 ............................................................................................................................. 45
2.6.3 异常处理 ............................................................................................................................. 47
2.6.4 协议分析 ............................................................................................................................. 49
2.7 基于 MVCC 的分布式事务 .......................................................................................................... 50
2.7.1 MVCC 简介 ......................................................................................................................... 50
2.7.2 分布式 MVCC .................................................................................................................... 51
2.7.3 工程投影 ............................................................................................................................. 52
2.8 Paxos 协议 ...................................................................................................................................... 53
2.8.1 简介 ..................................................................................................................................... 53
2.8.2 协议描述 ............................................................................................................................. 53
2.8.3 实例 ..................................................................................................................................... 55
2.8.4 竞争及活锁 ......................................................................................................................... 58
2.8.5 协议推导 ............................................................................................................................. 59
2.8.6 工程投影 ............................................................................................................................. 61
2.9 CAP 理论 ........................................................................................................................................ 66
2.9.1 定义 ..................................................................................................................................... 66
2.9.2 CAP 理论的意义 ................................................................................................................. 66
2.9.3 协议分析 ............................................................................................................................. 66
3 参考资料 ................................................................................................................................................... 69

1
前言
半年前,同学提出希望学习分布式系统的相关知识,然而笔者发觉缺少一份既有一定理论内容、
又贴近工程实践,既深入浅出又较为全面的学习资料。为此,笔者尝试对自己在学习、开发分布式
系统过程中获得的一些理论与实践进行总结,进而催生了写作本文的想法。
分布式系统理论体系非常庞大,涉及知识面也非常广博,由于笔者的肤浅,本文精心选择了部
分在工程实践中应用广泛、简单有效的分布式理论、算法、协议加以介绍。全文分为两大部分,第
一部分介绍了分布式系统的一些基本概念并框定了本文的问题模型和问题域,作为后续章节的基础。
第二部分介绍了一些分布式系统的理论,在介绍这些理论时,注重引入实例并加以应用,同时将这
些理论投影到真实的系统中。
在原本的写作计划中,本文还有第三部分的内容。第三部将分析若干有代表性的分布式系统,
着重分析第二部分中的理论是如何被综合运用在这些真实的分布式系统中的。在具体写作时,笔者
将这部分的内容拆解到第二章各节的“工程投影”中,简要分析了第二章的理论是如何体现在各个
典型分布式系统中的。即便如此,笔者觉得后续可以再作一篇《典型分布式系统分析》,从各个系统
的角度横向分析这些系统的特点。
开发分布式系统需要多方面的知识、技能与经验。受限于作者的能力,本文将讨论的重点集中
在分布式层面的协议和算法设计,开发分布式系统所需要的其他方面的知识与技术则不在本文的讨
论范围。
最后,感谢李海磊先生、吴学林先生对笔者学习、实践分布式系统给予的大力指导;感谢梁建
平先生、徐鹏先生对本文提出的诸多宝贵意见和建议。
2012 年 5 月

2
1 概念
1.1 模型
一些经典的分布式系统的资料对分布式系统的全貌做了比较详细的介绍[1][2]。为了控制规模,
在开始讨论分布式系统的协议、原理与设计之前,首先给出在本文中研究的分布式系统在分布式层
面的基本问题模型。后续所有的讨论都限定在这个模型的范围内,超过模型范围的内容则不在本文
中讨论。本文尽量精简分布式系统模型是为了控制问题的规模。
图 1-1 本文的分布式系统模型
1.1.1 节点
节点是指一个可以独立按照分布式协议完成一组逻辑的程序个体。在具体的工程项目中,一个
节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如
果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。本
文不考虑拜占庭问题,即认为节点始终按照约定的分布式协议工作。图 1-1 中以矩形和椭圆形表示
了节点。
1.1.2 通信
节点与节点之间是完全独立、相互隔离的,节点之间传递信息的唯一方式是通过不可靠的网络
进行通信。即一个节点可以向其他节点通过网络发送消息,但发送消息的节点无法确认消息是否被
接收节点完整正确收到。在 1.1.4.2 节,将重点讨论这种网络通信异常的问题。图 1-1 中以带箭头
的直线表示了消息通信,其中某些节点间使用双箭头表示网络双向可达,而某些节点间只有单箭头
表示网络单向可达,而某些节点间没有箭头表示网络完全不可达。
1.1.3 存储
节点可以通过将数据写入与节点在同一台机器的本地存储设备保存数据。通常的存储设备有磁
A
图例
带存储的状态节点
无状态节点
宕机节点
网络通信
完全网络分化界限
A
A
剩余71页未读,继续阅读



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0