Two-phase-commit (2PC) has been widely adopted for distributed transaction processing, but it also jeopardizes throughput by introducing two rounds of network communications and two durable log writes to a transaction's critical path. Despite the various proposals that eliminate 2PC such as deterministic database and access localization, 2PC remains the de facto standard since the alternatives often lack generality (e.g., requiring workloads without branches based on query results). In this paper, we present Primo, a distributed transaction protocol that supports a more general set of workloads without 2PC. Primo features write-conflict-free concurrency control that guarantees once a transaction enters the commit phase, no concurrency conflict (e.g., deadlock) would occur when installing the write-set -- hence the prepare phase is no longer needed to account for any potential conflict from any partition. In addition, Primo further optimizes the transaction path using asynchronous group commit. With that, the durability delay is also taken off the transaction's critical path. Empirical results on Primo are encouraging -- in YCSB and TPC-C, Primo attains 1.42x to 8.25x higher throughput than state-of-the-art general protocols including Sundial and COCO, while having similar latency as COCO which also employs group commit.
翻译:两阶段承诺(2PC)已被广泛采用,用于分散交易处理,但通过引入两轮网络通信和两份耐久日志来写入交易的关键路径,这也危及吞吐量。尽管提出了消除2PC的各种提案,例如确定性数据库和进入本地化,但2PC仍然是事实上的标准,因为替代方案往往缺乏普遍性(例如,要求工作量,没有基于查询结果的分支),本文介绍Primo,一个分散交易协议,支持没有2PC的更普遍的工作量。Primo特征是写出无冲突货币控制,保证交易一旦进入承诺阶段,就不会发生货币冲突(例如,僵局),因此,在安装书面集时,将不再发生同种货币冲突 -- -- 因此,不再需要准备阶段来说明任何可能发生的分割冲突。此外,Primo进一步优化交易路径,利用“交错式集团”承诺。此外,还取消了交易的关键路径上的耐久延缓期。Emprical结果令人鼓舞 -- -- 在YCSB和TPC-C, Primoal-C, 等货币冲突冲突冲突(例如僵局)在安装时不会发生任何货币冲突冲突 -- -- -- -- 包括10号总承诺8x。</s>