[论文阅读]Dissecting the Performance of Strongly-Consistent Replication Protocols 四

208 阅读8分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天,点击查看活动详情

[论文阅读]Dissecting the Performance of Strongly-Consistent Replication Protocols (四)

本章节检查了第5节的benchamrk结果,并将这些性能结果提炼为均匀分布的工作负载的简单吞吐量和延迟公式。这些公式在第6.1节提出了强一致性复制吞吐量的简单统一理论,在第6.2节提出了延迟。最后,在第6.3节中我们展示了这些公式如何让我们对协议进行包络性能预测。 论文地址:cse.buffalo.edu/~demirbas/p…

6.1 负载和容量

image.png

系统的容量Cap(S)是系统S能够处理的最高请求处理率。正如我们从Paxi实验中观察到的,一个给定协议的容量是由系统中负载L的最繁忙的节点决定的,例如

Cap(S)=1/L(S)。 (1)

定义6.1. 系统的负载L(S)是指在每一个最繁忙的节点上调用的最小操作数。其中一个操作是处理任何两个节点之间的往返通信所需的工作。例如,对于每个法定人数的访问,领导者必须处理Q数量的传出和传入信息,这相当于Q操作的总数。在单领导协议中,最繁忙的节点通常是Leader,而多领导算法有一个以上的最繁忙节点。在这种协议中,具有leader能力的节点往往比其他节点承受更大的负荷。

已经有不少论文注意到这一点,开始去研究Leader的扩展性,例如S-Paxos: Offloading the Leader for High Throughput State Machine Replication,www.ic.unicamp.br/~buzato/tea…

image.png

其中0≤c≤1是操作冲突的概率,Q是领导者选择的法定人数,L是操作领导者的数量。其推导过程如下。节点有1/L的机会是一个请求的领导者,这诱发了一个在有冲突的情况下,再加上额外的一轮法定人数访问,通信量为Q-1。节点成为跟随者的概率是1-1/L,其中在最好的情况下它只处理一个收到的消息。

从简化的从表格中不难看出,利用更多领导者的协议可以减少负载(从而增加容量),因为用户的请求在多个领导者之间共享。另一方面,这也增加了额外回合的机会,以解决领导者之间的任何冲突。方程[3]使用了节俭的优化,即领导者只与最小数量的节点进行通信,以达到大小为Q的法定人数。然而,在一般情况下,领导者与所有N-1个追随者进行交流,在这个方程中,Q = N - 1。

在下面的公式中,我们提出了三种协议的负载的简化形式,并计算了N=9节点的结果。随着负载的减少,这些协议的表现更好。

image.png

在有N 节点的单领导人Paxos协议(公式[4])中,c = 0,因为冲突操作由单领导人串联,L = 1,法定人数Q = ⌊N /2⌋+1.相比之下,EPaxos(方程[5]将每个节点都有可能成为Leader,并使用L = N 。WPaxos(公式[6]利用灵活的网格法定人数系统,这样每个领导者只访问自己的第2阶段法定人数,大小为N/L。在一个3×3的网格中,WPaxos的负载只有4/3,这让它在三个共识协议中负荷最小(因此容量最大)

相比Multi Paxos和Raft,EPaxos有着自己的优势,但是缺点也非常明显,EPaxos协议非常复杂,不合适冲突多的场景(也就是c过大的场景),接口行为也不见得适应现在的软件栈,比如commit和execution的阶段划分更加的明确,commit成功和执行成功对客户端是两个不同的回应(应该也可以在系统内部等待成一个),commit顺序和execution顺序也可能不一样,execution逻辑很复杂,读取操作也很复杂。此外冲突的命令在replication层面解决,可能会影响上层并发控制逻辑,很可能会引入一些耦合。

6.2 延迟

广域网中协议的预期延时由location、最小quorum延时DQ ,以及请求的locality决定。

image.png

其中DL是请求产生的地方与操作领导者的距离。当一个请求是概率为l的本地请求时,它只需要与最近的邻居DQ的法定人数访问时间。对于非本地的请求,发生概率为1-l,与领导者D的距离为一个往返。L也对平均延迟有贡献。对于EPaxos l = 1但c是针对工作负载的,相反,对于我们研究的其他共识协议,我们有c=0,l是针对工作负载的。

6.3 比较各种协议

通过使用我们在前面几个小节中提出的两个公式37,我们讨论了这些协议如何相互比较,以及我们如何提供这些协议的背面 性能预测。

EPaxos和Generalized Paxos试图使单一领导通过将领导力扩展到每个人,使Paxos更具可扩展性。因此分担负载;这使L增加到系统中所有节点的最大值,并减少L(S)。但是,这也带来了一个复杂的问题:来自两个副本的任何冲突的命令都需要额外的一轮法定人数确认来解决顺序问题,然后才可以进行请求。

执行和回复。这个额外的回合给系统带来了更多的负载,降低了吞吐量,增加了延迟。我们的评估表明,这个问题在广域网中变得更加糟糕:由于请求在广域网中需要更长的时间来完成,这也导致了概率的增加的竞争。在最坏的情况下,即使有25%的冲突请求,系统也能经历c=100%的负载。

灵活的Paxos和WPaxos得益于灵活的Quorums,这样QDQ 对于阶段2来说都会减少。

我们在这项工作中评估的三个广域网协议利用工作负载中的定位性l来优化广域的延迟。当位置性是静态的,并且使用最佳策略将数据放在靠近大多数请求的地方时,这些协议将经历相同的广域网延迟。

image.png

如果读操作多于写操作,更频繁的读取操作意味着更少复制也受益于leaderless的策略,因为可以有很低的不可用时间,应该考虑Generalized paxos 以及EPaxos。

否则在局域网中部署少量的节点,可以保持即使是单领导协议也有不错的性能,同时得益于简单的实现。 考虑:ultiPaxos, Raft, Zab 如果没有地域性:静态定位意味着分片技术在最佳情况下发挥作用。 考虑 :paxos groups 如果关注数据中心故障, 一个具有动态适应地域性和容忍数据中心故障能力的多领导协议是最合适的,可以考虑:WPaxos,Vertical Paxos

image-20221031171632247

图14:确定合适的共识协议的流程图

在表4我们显示了每个协议旨在探索的参数。鉴于每个协议都强调这些参数中的几个,并与其他参数进行交换,没有一个协议适合所有的需求/期望。我们的结果和公式也有助于决定哪一类Paxos协议在给定的部署条件下是最佳的。在图14我们给出了一个流程图,作为确定哪种共识协议适合给定的部署环境的指导原则。

7 结语

我们提出了一种双管齐下的方法来分析强一致性复制协议。我们将吞吐量和延迟性能提炼成简单的公式,在Paxos协议上进行归纳,将它们统一起来,并强调它们所采取的不同设计决策和权衡。

我们预计,我们提供的简单论述和分析将引导新方案的发展,特别是广域网协调协议。在获得法定人数方面,不平衡的拓扑结构造成了广域网部署中的困难,实现良好的位置性和负载平衡仍然是高效的强一致性广域网复制的一个公开问题。此外,作为未来工作的一部分,我们旨在扩展我们的分析模型,以涵盖具有宽松一致性保证的复制协议,如有界一致性和会话一致性。