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.
Highlights
Structuring a software system as a collection of actively communicating objects is an increasingly popular architecture for large-scale, high performance, and high availability IT infrastructure
This paper studies the performance of high-load strict 2pl/2pc in high- and lowcontention use cases and introduces a novel concurrency mechanism named PathSensitive Atomic Commit, which minimizes waiting in busy entities by exploiting high-level, functional knowledge about object behavior to reduce contention. psac trades computing power for reduced waiting on locks, in order to achieve higher throughput than strict 2pl
More details are discussed in section 3. psac works under the assumptions that: all objects are state machine-based objects with clearly defined actions; the behavior of actions is defined by pre- and post-conditions on the local object, using first order logic with support for integer constraints, respectively describing their applicability and state effect; 1 https://www.ing.com
Summary
Structuring a software system as a collection of actively communicating objects is an increasingly popular architecture for large-scale, high performance, and high availability IT infrastructure. Our experience in the context of ING Bank is that financial institutions deal with large and complex IT landscapes, consisting of many communicating software applications and components under high request loads, which need to synchronize to keep data consistent These systems often perform operations that span multiple different applications and server nodes with consistency and durability guarantees. Transactions are a mechanism to limit the complexities inherent to concurrent and distributed systems, such as dealing with hardware failure, application crashes, network interruptions, multiple clients writing to same resource, reading of partial updates and data and race conditions [27]. Transactions simplify solving these issues for clients.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.