分布式理论|青训营笔记

85 阅读2分钟

这是我参与【第五届青训营】伴学笔记创作活动的第4天

一、分布式概述

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

二、常规的分布式系统

分布式存储、分布式数据库、分布式计算。

三、系统模型

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

四、共识和一致性

1.最终一致性:客户端A读到x=0,当客户端C正在写入时,客户端AB可能读到0或者1,但是当C写入完成后,AB最终能读到一致的数据。
*读请求和写请求并发时可能读到旧值。
2.线性一致性:当客户端A读到更新的版本x=1后,及时将消息同步给其他客户端,这样其他客户端立即能获取到x=1。
*一旦某个读获取到新值,所有客户端都必须返回新值;保证线性一致性多个节点间势必需要进行协商,以寻求一致,这样增加了延迟,系统可用性受损。
3.时间和事件顺序:
“happened before”关系记为“->”满足如下三个条件:
1)如果ab是在相同节点上的两个事件,ab之前发生,则定义为a->b
2)如果a表示某节点发生某条消息,b是另一个节点接受这条消息,则有a->b
3)如果有a->bb->c,则a->c
Lamport逻辑时钟
  可以为每一个分布式事务定义一个逻辑时间戳,可以更好解决事物一致性、隔离性
  

五、理论基础

CAD、ACID、BASE