FLP、CAP和BASE

FLP不可能原理

FLP定理

FLP Impossibility(FLP 不可能性)是分布式领域中一个非常著名的定理,定理的论文是由 Fischer, Lynch and Patterson 三位作者于1985年发表

It is impossible to have a deterministic protocol that solves consensus in a message-passing asynchronous system in which at most one process may fail by crashing

FLP的三大限定条件

确定性协议

Deterministic protocol,给定一个输入,一定会产生相同的输出

异步网络通信

同步通信:同时在线,允许超时

异步通信:没有统一时钟、不能时间同步、不能使用超时、不能探测失败、消息可任意延迟、消息可乱序

所有存活节点

所有存活的节点必须最终达到一致性

FLP的不可能三角

Safety:系统中非故障节点达成了一致和合法的共识,又称Agreement

Liveness:系统中非故障节点在有限的时间内能够达成共识,又称Termination

Fault Tolerance:协议必须在节点故障的时候同样有效

在这里插入图片描述

SL系统:为了达成一致性,不允许节点失败

SF系统:为了保证Safety,需要无限等待,因此无法保证Liveness

LF系统:为了保证Liveness,不能无限等待,因此无法保证Safety

Paxos违背了FLP吗?

在这里插入图片描述

CAP定理

CAP定理

CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer‘s theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在2000年的 ACM PODC 上提出的一个猜想

2002年,麻省理工学院的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)发表了布鲁尔猜想的证明,使之成为分布式计算领域公认的一个定理。对于设计分布式系统的架构师来说,CAP 是必须掌握的理论

It is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees: Consistency, Availability, Partition tolerance

分布式数据存储系统不可能同时满足一致性、可用性和分区容忍性

CAP的不可能三角

一致性:每次读取操作都会读取到最新写入的数据,或者返回错误

可用性:每次请求都会得到非错请求,但不保证返回最新的数据

分区容错性:系统在发生分区的时候继续提供服务

在这里插入图片描述

CA:为了达成数据一致性和系统可用性,不允许分区

CP:系统分区的时候保证一致性,到无法保证可用性

AP:系统分区的时候保证可用性,但无法保证数据一致性

CAP的三大限定条件

分布式

分布式,可能发生网络分区

数据存储

通过复制来实现数据共享的存储系统

同时满足

同时满足CAP

CAP细节

复制延迟

在这里插入图片描述

理论上:CAP是忽略网络延迟的

工程落地:PACELC猜想(Partition -> Availability, Consistency, Else -> Latency, Consistency.)

描述粒度

在这里插入图片描述

CAP关注的是单个数据,不是整个系统,系统数据可以有的符合CP,有的符合AP

更多

正常情况下,可以满足CA,但是实际上有很小的时延

放弃!=无为,需要为分区恢复后的数据恢复和业务恢复做好准备

CAP的CA和ACID的CA定义完全不同,两者适应的领域也不同

BASE理论

BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性

Basically Available:读写操作尽可能的可用,但写操作在冲突的时候可能丢失结果,读操作可能读取到旧的值

Soft State:没有一致性的保证,允许系统存在中间状态,而该中间状态不会影响系统整体可用性,这里的中间状态就是CAP 理论中的数据不一致

Eventually Consistency:如果系统运行正常且等待足够长的时间,系统最终将达成一致性的状态

Eventual & Strong Consistency

在这里插入图片描述

BASE与CAP

在这里插入图片描述

BASE/CAP/FLP 落地

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值