120 research outputs found

    Static local coordination avoidance for distributed objects

    Get PDF
    In high-throughput, distributed systems, such as large-scale banking infrastructure, synchronization between actors becomes a bottle-neck in high-contention scenarios. This results in delays for users, and reduces opportunities for scaling such systems. This paper proposes Static Local Coordination Avoidance, which analyzes application invariants at compile time to detect whether messages are independent, so that synchronization at run time is avoided, and parallelism is increased. Analysis shows that in industry scenarios up to 60% of operations are independent. Initial performance evaluation shows that, in comparison to a standard 2-phase commit baseline, throughput is increased, and latency is reduced. As a result, scalability bottlenecks in high-contention scenarios in distributed actor systems are reduced for independent messages

    Exploiting models for scalable and high throughput distributed software

    Get PDF
    In high-throughput distributed applications, such as large-scale banking systems, synchronization between objects becomes a bottleneck. This short paper focusses on research, in close collaboration with ING Bank, on the opportunity of leveraging application specific knowledge captured by model driven engineering approaches, to increase application performance in high-contention scenarios, while maintaining functional application-level consistency

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

    Get PDF
    Context: Concurrent objects with asynchronous messaging are an increasingly popular way to struc-ture highly available, high performance, large-scale software systems. To ensure data-consistency and sup-port 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,2plbecomes a bottleneck when objects are highly contended, when an object is queuing a lot of messages becauseof locking. <br?. Approach: In this paper we introduce Path-Sensitive Atomic Commit (psac) to address this situation. Westart from message handlers (or methods), which are decorated with pre- and post-conditions, describingtheir guards and effect. Knowledge: This allows thepsaclock mechanism to check whether the effect of two incoming messages atthe same time are independent, and to avoid locking if this is the case. As a result, more messages are directlyaccepted or rejected, and higher overall throughput is obtained. Grounding: We have implementedpsacfor a state machine-based DSL called Rebel, on top of a runtimebased on the Akka actor framework. Our performance evaluation shows thatpsacexhibits the same scalabilityand latency characteristics as standard2pl/2pc, and obtains up to 1.8 times median higher throughput incongested scenarios. Importance: We believepsacis a step towards enabling organizations to build scalable distributed applica-tions, even if their consistency requirements are not embarrassingly paralle

    A Tour of Gallifrey, a Language for Geodistributed Programming

    Get PDF
    Programming efficient distributed, concurrent systems requires new abstractions that go beyond traditional sequential programming. But programmers already have trouble getting sequential code right, so simplicity is essential. The core problem is that low-latency, high-availability access to data requires replication of mutable state. Keeping replicas fully consistent is expensive, so the question is how to expose asynchronously replicated objects to programmers in a way that allows them to reason simply about their code. We propose an answer to this question in our ongoing work designing a new language, Gallifrey, which provides orthogonal replication through _restrictions_ with _merge strategies_, _contingencies_ for conflicts arising from concurrency, and _branches_, a novel concurrency control construct inspired by version control, to contain provisional behavior
    • …
    corecore