Rolis: a software approach to efficiently replicating multi-core transactions

Rolis: a software approach to efficiently replicating multi-core transactions
复制标题

DOI:
10.1145/3492321.3519561
复制
发表时间:
2022-03
期刊:
Proceedings of the Seventeenth European Conference on Computer Systems
影响因子:
--
通讯作者:
Weihai Shen;Ansh Khanna;Sebastian Angel;S. Sen;Shuai Mu
Weihai Shen;Ansh Khanna;Sebastian Angel;S. Sen;Shuai Mu
中科院分区:
其他
文献类型:
--
作者:
Weihai Shen;Ansh Khanna;Sebastian Angel;S. Sen;Shuai Mu

文献摘要

被引文献

相似文献

提出了一种新的快速容错复制多核事务数据库系统ROLIS。ROLIS的目标是通过确保内核总是在做有用的工作,而不是相互等待或等待其他副本,来掩盖复制的高成本。ROLIS通过不将多核并发控制与多机复制混合在一起来实现这一点,这是使用Paxos复制事务提交协议的系统传统上所做的。相反,罗里斯采取了一种“执行-复制-重播”的方法。ROLIS首先在引导者机器上推测性地执行事务,然后使用一种新的协议将每个线程的事务日志复制到跟随者,该协议利用独立的Paxos实例来避免协调,同时仍然允许跟随者安全地重播。执行、复制和重放经过精心设计,可扩展,并且跨核心的协调开销几乎为零。我们的评估显示,ROLIS可以在TPC-C工作负载上实现1030万个TPS(每秒事务处理量),使用3个副本设置,其中每台服务器有32个核心。这一吞吐量结果比我们测试的传统软件方法(例如2PL)高出几个数量级,并可与使用内核旁路和高级网络硬件构建的最先进的容错内存存储系统相媲美,即使Rolis在商用计算机上运行。
This paper presents Rolis, a new speedy and fault-tolerant replicated multi-core transactional database system. Rolis's aim is to mask the high cost of replication by ensuring that cores are always doing useful work and not waiting for each other or for other replicas. Rolis achieves this by not mixing the multi-core concurrency control with multi-machine replication, as is traditionally done by systems that use Paxos to replicate the transaction commit protocol. Instead, Rolis takes an "execute-replicate-replay" approach. Rolis first speculatively executes the transaction on the leader machine, and then replicates the per-thread transaction log to the followers using a novel protocol that leverages independent Paxos instances to avoid coordination, while still allowing followers to safely replay. The execution, replication, and replay are carefully designed to be scalable and have nearly zero coordination overhead across cores. Our evaluation shows that Rolis can achieve 1.03M TPS (transactions per second) on the TPC-C workload, using a 3-replica setup where each server has 32 cores. This throughput result is orders of magnitude higher than traditional software approaches we tested (e.g., 2PL), and is comparable to state-of-the-art, fault-tolerant, in-memory storage systems built using kernel bypass and advanced networking hardware, even though Rolis runs on commodity machines.