分布式理论 | 青训营笔记

130 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

1. 什么是分布式

  • 分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同目标

  • 分为分布式计算分布式存储分布式数据库

  • 优势和挑战

image-20230201101648977.png

2. Why-How-What

  • 为什么使用分布式:数据爆炸,对存储和运算大规模运用的需求;成本低,构建在廉价服务器上
  • 怎样使用分布式:分布式框架;成熟的分布式系统
  • 分布式关注的重点是什么:规模、负载、一致性要求、稳定性要求
  • 怎样学习分布式:掌握分布式理论,了解一致性协议

3. 常见的分布式系统

image-20230201103211716.png

4. 常见的故障类型

  • 正确性故障(大多数分布式系统不解决此类故障,加密和冗余信息设计可以缓解正确性故障):Byzantine-failure,ADB
  • 时间故障(未决的状态):Omissions-failure Performance-failure
  • 状态故障:Fail-stop Crash
  • 原因可知/不可知故障:Fail-stop

image-20230201103444295.png

故障描述可能类型
磁盘磁头不寻道、盘片不转、磁介质损伤Fail-stop
磁盘坏道磁头划伤引起的;宇宙射线引起位反转Fail-stop,ADB
主板、板卡故障Crash
网络故障网卡位反转、大量丢包;电源故障、背板故障Byzantine,Omission
网络分区网络引起节点划分为不同子集,子集中相通,子集间不通Performance
内存故障内存出错,数据被篡改ADB
线缆故障服务器光模块频繁up和downPerformance,Omission
内核崩溃Crash
CPU故障Omission,Crash
电源故障Omission
软件故障进程Crash、内存踩坏、状态不一致、配置错误、软件bugByzantine

5. 拜占庭将军问题

拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。 问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。 叛徒可以任意行动以达到以下目标:

  • 欺骗某些将军采取进攻行动;
  • 促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;
  • 或者迷惑某些将军,使他们无法做出决定。

如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。 拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。