Paxos算法
2023-03-17 16:05:02 0 举报
Paxos算法流程
作者其他创作
大纲/内容
数据版本:0 -> 1
目标:
服务器id:3
2.转发写请求请求版本号为:0+1
客户端
5.收到半数以上服务器的请求则广播并维护全局版本
规则:
1.整个集群中,共同维护一个全局数据版本号,服务器总数2.每个服务器都有读写的权利3.每个服务器都有自己数据的一个版本号,从0开始不断累积。每接收到一次成功的写请求,就将版本加14.每个服务器接收到客户端的读请求时,直接返回本地数据。接收到写请求时,将写请求绑上写版本号(自身数据版本号+1)转发给其他服务器5.其他服务器只会接受写版本号大于自身数据版本号的写请求,并返回响应给发送写请求的服务器6.当发送写请求的服务器收到超过半数以上的服务器的成功响应时,发送全局广播,同步所有服务器的数据,并维护全局版本号
4.判断成功则响应写请求
达到服务器之间数据软一致性到最终一致性
全局广播
奇数服务器(不推荐)
1.写请求
新问题:9.15等依旧会活锁
服务器id:2
解决办法
有主模式
每个服务器之间互相信任
全局数据版本号:0 -> 1服务器总数:5
Paxos基础模型
Paxos有主模型
前提:
BUG:
服务器id:5
3.判断写请求版本号
质数服务器
服务器id:4
服务器id:1
1.当服务器数量为偶数时,同时两台服务器发送相同版本号的写请求,且获得了相同数量的响应,造成活锁2.当有服务器宕机后,可能会引起存活服务器数量无法满足大于一半,使得写请求无法执行
0 条评论
下一页