这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、本堂课重点内容
本堂课的知识要点有哪些?
分布式理论
-
- 分布式概述
-
- 系统模型
-
- 理论基础
-
- 分布式事务
-
- 共识协议
-
- 分布式实践
二、详细知识点介绍
本堂课介绍了哪些知识点?
4. 分布式事务
两阶段提交
为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种演算法。
三个假设:
- 1.引入协调者和参与者,互相进行网络通信
- 2.所有节点都采用预写式日志,且日志被写入后即被保持在可靠的存储设备上
- 3. 所有节点不会永久性损坏,即使损坏后仍然可以恢复。
三阶段提交
将两阶段提交中的Prepare阶段,拆分两部分:CanCommit和PreCommit机制
解决了两个问题:
- 单点故障问题
- 阻塞问题
另外引入超时机制,在等待超时之后,会继续进行事务的提交。
MVCC
MVCC是一种并发控制的方法,维持一个数据的多个版本使读写操作没有冲突,所以既不会阻塞写,也不会阻塞读。
MVCC为每个修改保存一个版本,和事务的时间戳是相关联。可以提高并发性能,解决脏读的问题。
5. 共识协议
Quorum NWR模型
三要素:
- N:在分布式存储系统中,有多少份备份数据
- W:代表一次成功的更新操作要求至少有w份数据写入成功
- R:代表一次成功的读数据操作要求至少有R份数据成功读取
RAFT协议
Raft协议是一种分布式一致性算法,即使出现部分节点故障,网络延时等情况,也不影响各节点,进而提高系统的整体可用性。
Paxos协议
- 优势:写入并发性能高,所有节点都能写入
- 劣势:没有一个节点都有完整的最新的数据,恢复流程复杂,需要同步历史记录。
6. 分布式实践
MapReduce
分布式KV
三、引用参考
-
我参考了哪些外部博客/笔记/文章?