分布式理论(上) | 青训营笔记

65 阅读3分钟

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

分布式系统

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。分布式系统可以分为分布式计算、分布式存储、分布式数据库等。

分布式系统的优势有:去中心化、低成本、弹性、资源共享、可靠性高等;面对的挑战有:普遍的节点故障、不可靠网络、异构的机器与硬件环境、安全性。

常见的分布式系统

分布式存储

Google File System(GFS):分布式文件系统。

Ceph:统一的分布式存储系统

Hadoop HDFS:基于GFS架构的开源分布式文件系统

ZooKeeper:高可用的分布式数据管理与系统协调框架

分布式数据库

Google Spanner:google可拓展的、全球分布式数据库

TiDB:开源分布式关系型数据库

HBase:开源NoSQL数据库

MongoDB:文档数据库

分布式计算

Hadoop:基于MapReduce分布式计算框架

Spark:在Hadoop基础上,使用内存来存储数据

YARN:分布式资源调度

系统模型

故障模型

Byzantine failure: 节点开源任意篡改发送给其他节点的数据

Authentication detectavle byzantine failure(ADB):Byzantine failure的特例:节点开源篡改数据,但不能伪造其他节点的数据

Performance failure: 节点未在特定时间段内收到数据

Omission failure: 节点收到数据的时间无限晚,即收不到数据

Crash failure: 在Omission failure的基础上,增加了节点停止响应的假设,也就是持续性地Omission failure

Fail-stop failure: 在Crash failure的基础上增加了错误可检测的假设

image.png

ACID理论

事务是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中所有的操作要么全部执行,要么全部不执行。数据库事务拥有四个特性ACID。即分别是原子性、一致性、隔离性、持久性。

原子性:A,原子性是指事务包含的所有操作要么全部成功,要么全部回滚。

一致性:C,一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

隔离性:I,隔离性是当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

持久性:D,持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。