分布式一致性算法
2022-08-03 14:46:26 20 举报
AI智能生成
一致性算法
作者其他创作
大纲/内容
理论
CAP
C强一致性
BASE
NWR
集群结构
中性化:星星结构
Basic Paxos
multi Paxos
去中心化
CRQS 链式复制
Gossip
日志复制
主从复制
mysql主从复制
基于语句的复制
存储和传输 效率高
需要重新执行,锁数据
有的改变可能不会记录
基于行的复制
更占空间
所有改变都会被复制,更安全
数据大的操作更花时间
混合复制
先基于语句复制,失败改用基于行的复制
无主复制
多主复制
机制
Quorum机制
读取节点个数>总节点个数-写入节点数<br>通常 R = N-W+1
共5个副本,写入3个副本,<br><br>至少保证要读3个副本,才能读到新数据
lense机制
一致性
事务一致性
2PC
3PC
canCommit
preCommit
doCommit
分布式共识算法
有主
Multi Paxos 思想<br>(引入leader和事先对日志项编号)
分类
单主
Raft(2013 Diego Ongaro 和 John Ousterhout)
应用:etcd
问题分解
Leader Election
String Leader只能有一个Leader
Log Replication
只从 Leader 传给 Follower
从不会覆盖自身本地日志中已经存在的条目
snapshot
多主
ZAB
ZK
multi-raft Group
应用:Cockroach,TiDB
在 CockroachDB 中,数据被分成不同的范围,每个范围都有自己的共识组。
思想
执行多个 Basic Paxos 实例,就一系列值达成共识
无主
Basic Paxos (1990 Lamport)<br>无主
应用
MGR
开源软件
Chubby
LibPaxos
问题
活锁
提案依赖关系
只能就单个值达成协议
Gossip
理论
六度分割
传播方式
直接邮寄
反熵
谣言传播
Pow
分类
客户端侧的一致性
强一致性
通过任意一个节点都返回最新的数据
弱一致性
存在不一致窗口,可能为新,也可能为旧的
最终一致性
案例:DNS
保证
变体
因果一致性
读写一致性
会话一致性
单调读一致性
服务端侧的一致性
容错算法
非拜占庭容错算法
拜占庭容错
PBFT<br>只能防止少数人(n-1) / 3 作恶
领导者作恶
非领导者作恶
心跳检测
lease机制的心跳检测
避免出现误判时引入新的问题
普通心跳检测
误报警:普通的心跳机制是无协议和承诺约定的,所以它的检测结果可能不可靠
Paxos族群
multi-poxos
Disk Paxos
Cheap Paxos
Generalized Paxos
Stoppable Paxos
Mencius
Vertical Paxos
Classic Paxos
FastPaxos(2005)
epaxos
0 条评论
下一页