Banking on Domain Knowledge for Faster Transactions: Leveraging Models to Avoid Coordination
Tim Soethout
Promotores: prof.dr. Jurgen Vinju (TU/e and CWI)
and prof. dr. Tijs van der Storm (RUG and CWI)
Eindhoven University of Technology
Date: 27 June, 2022
Thesis: PDF
Summary
Large-scale enterprise IT systems are complex and hard to maintain. Domain models can help to manage complexity and separate implementation from business functionality.
Consistency and isolation guarantees on data are paramount in these systems, especially in the financial domain. The sector requires approaches and directions to maintain these guarantees and provide high performance, while implementing the domain models correctly.
Using contracts — consisting of operations with guards and effects of domain entities — the novel run-time algorithm Local-Coordination Avoidance runs more operations concurrently than general purpose algorithms, while maintaining consistency and isolation guarantees. This is backed by Return-Value Serializability, which is a formalization of high-level serializability, based on domain operations instead of low-level reads and writes. A (distributed) object locally computes
Local-Coordination Avoidance with Contract-Based Commutativity. When all objects do this, this leads to global serializable behavior.
Performance evaluation on cloud hardware shows that throughput is increased up to 1.6 times in high-contention scenarios for non-conflicting operations and latency is on par or better.
Local-Coordination Avoidance can increase throughput for large scale, highly scalable applications, while the underlying functional business logic does not have to change, even though more performance is gained.
In the worst case it becomes clear where in the modeling these bottlenecks lie, and thus where functionality can be changed to circumvent this.