简介
分布式系统时计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标
优点
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
缺点
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全性低
常见的分布式系统
分布式存储
- Google File System(GFS): google分布式文件系统
- Ceph: 统一的分布式存储系统
- Hadoop HDFS: 基于GFS架构的开源分布式文件系统
- Zookeeper: 高可用的分布式数据管理与系统协调框架
分布式数据库
- Google Spanner: google可扩展的、全球分布式的数据库
- TiDB: 开源分布式关系型数据库
- HBase: 开源Nosql数据库
- MongoDB: 文档数据库
分布式计算
- Hadoop: 基于MapReduce分布式计算框架
- Spark: 在Hadoop基础上使用内存来存储数据
- YARN: 分布式资源调度
系统模型
故障模型
-
Byzantine failure: 节点可以任意篡改发送给其他节点的数据
-
Authentication detectable byzantine failure: Byzantine failure的特例,节点可以篡改数据但不能伪造其他节点的数据
-
Performance failure: 节点未在特定时间段内收到数据,即时间太早或太晚
-
Omission failure: 节点收到数据的时间无限晚,即收不到数据
-
Crash failure: 在omission failure的基础上,增加了节点停止响应的假设,也即持续性地omission failure