分布式理论|青训营笔记

50 阅读3分钟

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

什么是分布式

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。其中包括分布式计算、分布式存储等。
分布式系统有很多优势,比如:去中心化、低成本、弹性、资源共享、可靠性高等等,当然也有一些挑战:普遍的节点故障、不可靠的网络、异构的机器与硬件环境、安全问题。

常见的分布式系统

分布式存储分布式数据库分布式计算
Google File System, Ceph, Hadoop HDFS, ZookeeperGoogle Spanner, TiDB, HBase, MongoDBHadoop, Spark, YARN

故障模型

image.png
Byzantine failure: 节点可以任意篡改发送给其他节点的数据。
Authentication detectable byzantine failure: Byzantine failure的特例;节点可以篡改数据,但不能伪造其他节点的数据。
Performance failure: 节点未在特定时间段内收到数据,即时间太早或太晚。
Omission failure: 节点收到数据的时间无限晚,即收不到数据。
Crash failure: 在Omission failure的基础上,增加了节点停止响应的假设,也即持续性地Omission failure。
Fail-stop failure: 在Crash failure的基础上增加了错误可检测的假设。

image.png

CAP理论

image.png

image.png
CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向,CA:放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的选择。AP:放弃一致性(这里说的一致性是强一致性),追求分区容错性和可用性,例如一些注重用户体验的系统。CP:放弃可用性,追求一致性和分区容错性,例如与钱财安全相关的系统。

ACID理论

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

image.png

BASE理论

Base理论是对CAP中一致性和可用性权衡的结果,其来源于大型互联网分布式实践的总结,是基于CAP理论逐步演化而来的。其核心思想是:Basically Available:假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:响应时间上的损失,或者功能上的损失。Soft state:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。Eventually consistent:系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一致的状态,因此所有客户端对系统的数据访问最终都能够获取到最新的值。

image.png