Consensus protocols are widely used to build fault-tolerant applications. At one end of the spectrum of such protocols, Multi-Paxos and Raft have seen widespread adoption, but sacrifice significant latency and throughput. At the other end, protocols like Speculative Paxos and NOPaxos provide high-performance, but require specialized hardware and in-network functionality. This makes it hard to deploy them in environments such as the public cloud, where cloud tenants cannot access the physical network. Our work aims to bridge this gap between deployability and performance. We present Nezha, a high-performance and deployable consensus protocol that exploits accurate software clock synchronization. Nezha does not require special hardware or physical network access, making it easily deployable in virtualized environments. Instead, it uses a new primitive called deadline-ordered multicast (DOM) which orders client-to-replica multicast requests by deadlines specified in synchronized wall-clock time. We compare Nezha to 6 baselines in the public cloud: Multi-Paxos, FastPaxos, NOPaxos and Raft, as well as two recent protocols with clock synchronization, namely, Domino and TOQ-based EPaxos}. Evaluations show that Nezha outperforms the baselines by a median of 7.1x (range: 1.9--20.9x) in throughput, and by a median of 2.3x (range: 1.3--6.5x) in latency. We also use Nezha to replicate two applications (Redis and a prototype financial exchange) and show that Nezha can provide fault tolerance with only a modest performance degradation: compared with the unreplicated system, Nezha sacrifices 5.9% throughput for Redis; it saturates the processing capacity of CloudEx and prolongs the order processing latency by 4.7%. Nezha is open-sourced at https://gitlab.com/steamgjk/nezhav2.
翻译:多帕克斯和拉夫特等协议被广泛用于构建容错应用程序。 在这样的协议的一端, 多帕克斯和拉夫特等协议被广泛采用, 但却牺牲了大量的延缩和吞吐。 在另一端, 投机性和平和 NOPaxos 等协议提供高性能, 但需要专门的硬件和网络功能。 这使得很难在公共云层等环境中部署协议, 云租户无法访问物理网络。 我们的工作目的是缩小部署能力与性能之间的这一差距。 我们展示了高性能和可部署性共识协议, 利用了准确的软件时钟同步。 Nezha不需要特殊的硬件或实体网络访问,使其在虚拟化环境中可以很容易地部署。 相反, 它使用一种叫得上最原始的定时序多盘的多盘功能。 我们把Nezha与公共云层的6个基线比起来: 多帕克斯、 Fast- Paxos、 NOPaxtox 和 Raft, 以及两个最近的内部协议, 也就是: 以正平时序、 度、 Domax 直流、 直流、 直径、 直径、 直径、 直路、 显示S- sx 直径、透、 直路、直、透、透、透、透、透、透、直路、透、透、透、透、透、透、透、透、直路、透、透、透、透、直路、透、透、直路、显示、透、透、透、显示、显示、显示、显示、显示、透、显示、直路、通过、显示、直压、显示、直路、显示、显示、透、显示、显示、直、直、直、直、透、透、透、透、透、透、透、显示、显示、显示、直、直、直、直、显示、直、显示、显示、透、透、显示、显示、透、显示、透、显示、直、直、通过、显示、显示、直、直、通过、直、直、透、直、直、直、直、显示、直、显示、直、直、显示、直、直、直、直、显示、直、显示、显示、直、直、通过、显示、直、通过