Paxos理解之我见(二)

来源:互联网 发布:php 类的魔术方法 编辑:程序博客网 时间:2024/05/20 01:11
Paxos如何提高集群的并行计算能力。已经在Paxos理解之我见讲述了Paxos的思路。下面讲一下我对Paxos关键条件的理解和总结。
Paxos集群的前提条件:
一、多数派:大于集群的半数以上。
二、集群中的服务器指决议编号比它之前处理的大的,大于则通过。小于反对不通过。
三、提议:向集群其他服务器发送本服务器的数据变更。多数派通过后(多数派将接收的数据再通过的同时,将数据也进行了变更)则可以变更。
四、投票:接收集群其他服务器发送来的数据变更请求,并将其他服务器发送的提议编号与本地编号作比较,决定通过或反对。

现在假设每台服务器t1时间段内可以处理两次请求,推算得知3台服务器程序,三台服务器的并行能力是最高的。
现在进行演算:
假设有a、b、c三台机器  每台机器在t1时间段内可以完成投票↓↑提议↑↓两项事务。将a、b、c进行集群的话。t1时间段内可以做多少次操作呢?

先以a服务器开始分析:

(一)、t1时间段内,a先进行提议提议↑,恰好(中间网络通信时间可以忽略)b收到了a发来的提议,进行了投票↓↑。由于三台服务器a、b占了多数派。所以a服务器不用等待C服务器的投票结果,即可进行数据变更。a完成了投票↓↑、而b完成了提议↑↓
(二)、同样是t1时间内,b、c机器同样可以像(一)所述那样的过程,b完成了投票↓↑、而c完成了提议↑↓
(三)、同样是t1时间内,c、a机器同样可以像(一)所述那样的过程,c完成了投票↓↑、而a完成了提议↑↓
通过分析可得知t1时间段内a、b、c的Paxos集群共完成了三次投票↓↑提议↑↓。并行能力理论上提升了三倍。
(四)、当a、b、c都拥有最新值且同时进行提议时,将在a、b、c三台之间采用“类似猜拳”的机制决定谁的提议先通过例如,出现这种情况时三台机器各随机出一个数字。随机数最大的那台机器通过

当有5台、6台、7台进行Paxos进行集群时,按照上述过程和Paxos前提条件进行推算,并行能力是小于三的。在这里不在进行推算了。

那么,Paxos的好处是什么呢?
在CAP理论中  文章所述集群。C(一致性)、A(可用性)、P(分区容错性)三者之间完美衔接而且性能高
MySQL
MMM 模型就是基于此实现。
不知道有哪些不严谨后者是错误的地方,欢迎大家斧正!
0 0
原创粉丝点击