paxos工程中的运用-multi-paxos
来源:互联网 发布:spss剔除异常数据 编辑:程序博客网 时间:2024/06/03 18:21
什么是multi-paxos
上篇介绍了paxos的理论知识[http://blog.csdn.net/qq_35440678/article/details/78080431],要在实际工程运用大多数使用multi-paxos协议,原因是朴素paxos每次提议都执行完整paxos协议代价过大-3次网络交互,2 次本地持久化,因此,multi-paxos引入leader概念,较少paxos的prepare交互,较少朴素paxos每次提议交互过多问题;
multi-paxos概念:
在Paxos集群中利用Paxos协议选举唯一的leader,在leader有效期内所有的议案都只能由leader发起,这里强化了协议的假设:即leader有效期内不会有其他server提出的议案。因此对于redolog的同步过程,我们可以简化掉产生logID阶段和prepare阶段,而是由唯一的leader产生logID,然后直接执行accept,得到多数派确认即表示redolog同步成功。
根据定义引发几个问题:
- leader如何选举产生?
首先,Multi-Paxos协议并不假设全局必须只能有唯一的leader来生成日志,它允许有多个“自认为是leader的server”来并发生成日志,这样的场景即退化为Basic-Paxos。通过朴素paxos得到大多数Acceptor同意后产生leader,并通过lease机制(下发有效期),保持leader身份。 - 如何优化读取操作?
在Paxos协议中,对于决议的读取也是需要执行一轮Paxos过程的,在实际工程中做数据恢复时,对每条日志都执行一轮Paxos的代价过大,因此引入需要引入一种被成为confirm的机制,即leader持久化一条日志,得到多数派的accept后,就再写一条针对这条日志的confirm日志,表示这条日志已经确认形成了多数派备份,在回放日志时,判断如果一条日志有对应的confirm日志,则可以直接读取本地内容,而不需要再执行一轮Paxos。
参考资料
- 使用multi-paxos实现日志同步应用 http://www.cnblogs.com/foxmailed/p/5487533.html
- [Paxos三部曲之二] 使用Multi-Paxos协议的日志同步与恢复 https://mp.weixin.qq.com/s/bp1JkA8bdfy1PIkVgj65eA
阅读全文
0 0
- paxos工程中的运用-multi-paxos
- paxos之Multi-Paxos
- multi paxos在ceph monitor中的工程实现
- paxos
- Paxos
- paxos
- paxos
- Paxos理论介绍(二):Multi-Paxos
- multi-paxos和raft区别
- Keyspace中的paxos
- 生活中的Paxos
- paxos在ceph中的应用
- paxos运用场景看懂了一些
- Paxos的工程实践之Chubby。
- Paxos的工程实践之Hypertable。
- 带你一步步走入Paxos的世界 -- 序列4 -- Multi-Paxos
- 使用 Multi-Paxos 协议的日志同步与恢复
- Paxos算法
- 【IOS学习之常见问题】UIScrollView 不能滑动(ScrollView has ambiguous scrollable content height)
- 内网穿透技术详解 --- Java本地项目,可以让别人通过外网访问 (natapp、ngrok、nat123、花生壳等)
- define,const和enmu的区别
- ios-动态改变高度的注意点
- @RequestMapping注解的使用
- paxos工程中的运用-multi-paxos
- cocos2dx之 android/ios语音交互(二)
- java扫描器
- Java内存溢出和内存泄露
- 逻辑回归知识点
- 通过反射得到model的真实类型
- 嵌入式编程 while(1)的妙用!
- 深度学习之基础模型-VGG
- floyd最小环