PAXOS性能建模-第1.5部分

头图源自 xp

PAXOS性能建模-第1.5部分

这是关于第一部分的一个快速总结。

网络的变化有什么影响吗?在前面的模拟中,展示了从3个节点到5个节点的一些小的性能下降。

事实上,对于paxos来说,网络行为对可伸缩性 scalability 影响很小,在某些情况下根本没有区别。要了解我的意思,请看下图:

自然对数

看看4、6和36节点在模拟中如何执行相同的操作?5个、7个甚至35个节点的集群如何略优于4个节点?

偶数模拟结果的直观高层解释非常简单。对于偶数数量的集群大小,假设一个 self-voting 的领导者,一轮 round 的 leader 会收到奇数个回复。leader 在达到 quorums $ q = \lfloor {\frac{N}{2}} \rfloor + 1$ 后决定回合,这意味着它需要接收 $q-1$或$\left\lfloor{\frac{N}{2}}\right\rfloor$消息(带自投票)。例如,一个6节点的 cluster leader 将收到5个应答,但在第3个(或 median)应答时,round 达到了 majority 。

由于模拟从正态分布中提取消息RTT,因此RTT的中位数(50%)也是平均值。在重复足够数量的轮次之后,任何波动都被平均化,结果是 an average round 被一个由网络平均RTT的消息决定。

然而,具有奇数个服务器节点的集群决定在RTT略小于median RTT的消息的 round 。这是因为我们有偶数个 replies ,而中位数是平均两个中间RTT。用于计算中间值的两个值中较小的值实际上是该轮的仲裁消息,例如,在7节点部署中,领导者在收到第3条消息$l_3$后到达 quorum ,中间值为$\frac{l_3+l_4}{2}$

结果,在多次循环重复之后(我做了大约125000轮),模拟结果仍然是 quorum 消息的平均RTT比中值/平均RTT小一点,并且我添加的节点越多,它就越接近实际的第50个百分位和平均值。

那么,在这一切之后我们有什么?我认为可以安全地假设网络差异对paxos性能的影响非常小,有时甚至不存在。我们不必太担心网络,只要它是稳定的,并提供可预测的性能。但是,如果你有一个非多数数量的系统,你可能会从更快的回复中得到些许好处。

给TA打赏
共{{data.count}}人
人已打赏
科学人论文速递

Paxos性能建模(一)

2021-3-9 14:30:00

科学人

2021华为软件精英挑战赛记录,内含Baseline

2021-3-10 22:41:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索