论文标题
Nezha:使用同步时钟可部署和高性能共识
Nezha: Deployable and High-Performance Consensus Using Synchronized Clocks
论文作者
论文摘要
本文介绍了高性能共识协议NEZHA,云租户可以部署,而无需其云提供商的任何支持。 Nezha桥接了可以容易部署的多PAXOS和RAFT等协议之间的差距,以及诸如Nopaxos和投机Paxos之类的协议,这些方案提供了更好的性能,但需要访问诸如可编程交换机和网络优先级等技术,这些云租户却没有。 Nezha使用了一种新的多播原始原始词,称为截止日期订购的多播(DOM)。 DOM使用高准确软件时钟同步来同步发送者和接收器时钟。发件人在同步时间内标记带有截止日期的消息;接收者在截止日期之前或之后按截止顺序进行处理消息。 我们将Nezha与多Paxos,Fast Paxos,Raft,Nopaxos版本进行了比较,我们针对云进行了优化,以及使用同步时钟的2个最新协议,Domino和Toq-Epaxos。在吞吐量中,内兹(Nezha)的表现以5.4倍(范围:1.9-20.9倍)的中位数优于所有基准。在潜伏期中,内兹(Nezha)以2.3倍(范围:1.3-4.0x)的中位数优于五个基线,除了一个例外:与我们在一次测试中优化的Nopaxos相比,它牺牲了33%的潜伏期。我们还在Nezha之上原型两个应用程序,即钥匙值商店和公平访问的证券交易所,以表明Nezha仅适度地降低了其相对于未复制的系统的性能。 Nezha可从https://github.com/steamgjk/nezha获得。
This paper presents a high-performance consensus protocol, Nezha, which can be deployed by cloud tenants without any support from their cloud provider. Nezha bridges the gap between protocols such as Multi-Paxos and Raft, which can be readily deployed and protocols such as NOPaxos and Speculative Paxos, that provide better performance, but require access to technologies such as programmable switches and in-network prioritization, which cloud tenants do not have. Nezha uses a new multicast primitive called deadline-ordered multicast (DOM). DOM uses high-accuracy software clock synchronization to synchronize sender and receiver clocks. Senders tag messages with deadlines in synchronized time; receivers process messages in deadline order, on or after their deadline. We compare Nezha with Multi-Paxos, Fast Paxos, Raft, a NOPaxos version we optimized for the cloud, and 2 recent protocols, Domino and TOQ-EPaxos, that use synchronized clocks. In throughput, Nezha outperforms all baselines by a median of 5.4x (range: 1.9-20.9x). In latency, Nezha outperforms five baselines by a median of 2.3x (range: 1.3-4.0x), with one exception: it sacrifices 33% latency compared with our optimized NOPaxos in one test. We also prototype two applications, a key-value store and a fair-access stock exchange, on top of Nezha to show that Nezha only modestly reduces their performance relative to an unreplicated system. Nezha is available at https://github.com/Steamgjk/Nezha.