# Path-Sensitive Atomic Commit: Local Coordination Avoidance for   Distributed Transactions

**Authors:** Tim Soethout (ING Bank / Centrum Wiskunde & Informatica (CWI),, Netherlands), Tijs van der Storm (Centrum Wiskunde & Informatica (CWI) /, Universiteit Groningen, Netherlands), Jurgen Vinju (Centrum Wiskunde &, Informatica (CWI) / TU Eindhoven, Netherlands)

arXiv: 1908.05940 · 2020-06-11

## TL;DR

This paper introduces Path-Sensitive Atomic Commit (PSAC), a novel protocol that reduces locking in distributed transactions by checking message independence, thereby increasing throughput without sacrificing scalability.

## Contribution

The paper presents PSAC, a new lock mechanism that avoids unnecessary locking by analyzing message effects, improving throughput in distributed systems.

## Key findings

- PSAC achieves up to 1.8x higher median throughput in congested scenarios.
- PSAC maintains scalability and latency comparable to standard 2PL/2PC.
- Implemented on top of the Rebel DSL and Akka framework.

## Abstract

Context: Concurrent objects with asynchronous messaging are an increasingly popular way to structure highly available, high performance, large-scale software systems. To ensure data-consistency and support synchronization between objects such systems often use distributed transactions with Two-Phase Locking (2PL) for concurrency control and Two-Phase commit (2PC) as atomic commitment protocol. Inquiry In highly available, high-throughput systems, such as large banking infrastructure, however, 2PL becomes a bottleneck when objects are highly contended, when an object is queuing a lot of messages because of locking.   Approach: In this paper we introduce Path-Sensitive Atomic Commit (PSAC) to address this situation. We start from message handlers (or methods), which are decorated with pre- and post-conditions, describing their guards and effect.   Knowledge: This allows the PSAC lock mechanism to check whether the effect of two incoming messages at the same time are independent, and to avoid locking if this is the case. As a result, more messages are directly accepted or rejected, and higher overall throughput is obtained.   Grounding: We have implemented PSAC for a state machine-based DSL called Rebel, on top of a runtime based on the Akka actor framework. Our performance evaluation shows that PSAC exhibits the same scalability and latency characteristics as standard 2PL/2PC, and obtains up to 1.8 times median higher throughput in congested scenarios.   Importance: We believe PSAC is a step towards enabling organizations to build scalable distributed applications, even if their consistency requirements are not embarrassingly parallel.

---
Source: https://tomesphere.com/paper/1908.05940