Distributed systems enable online services and applications to scale and distribute workloads. However, they face the challenge of providing consistency, the illusion of sequential access, in a distributed environment. Consistency is essential for reliable and predictable distributed systems that can handle concurrent data access and updates.
However, consistency guarantees are oftenimposed by the underlying system, regardless of the application’s specific needs. Application-centric consistency is a novel perspective on consistency models that allows applications to define their own consistency policies based on their requirements and the system’s state. This perspective enables finegrained dynamic consistency in software systems composed of loosely coupled components that communicate through events, which offer benefits such as scalability, performance, and flexibility, but also pose challenges related to consistency, reliability, and complexity.
This thesis extends the concept of dynamic consistency, which was introduced by Dyconits, to a broader range of applications. Dyconits are a novel technique for managing inconsistency in Modifiable Virtual Environments (MVEs), where users can modify the shared state of the system. However, the question of their adaptability to various other domains remains largely unexplored. Contexts as diverse as smart farming, chat rooms, and real-time analysis applications, which
necessitate synchronization of replicated data in the face of lagging services, present intriguing challenges that Dyconits could potentially tackle. Consequently, the focus of this thesis shifts towards investigating how Dyconits can be harnessed within event-driven systems to enable optimistic inconsistency across a spectrum of event types and scenarios.
We present Hestia, a dyconit system that enables fine-grained control over the consistency levels of normal and priority events in event-driven systems. Unlike existing approaches that rely on system-level or data-level consistency, Hestia supports application-centric consistency, which allows the application logic and semantics to define the consistency requirements. We are the first to design, implement and evaluate a dyconit system for general event-driven systems.
Hestia employs two general communication patterns that can accommodate various application contexts and domains, such as smart farming, chat application, and real-time analysis. We evaluate Hestia on different communication patterns, workloads and policies and compare it with baseline systems. Our results demonstrate that Hestia achieves a 70% reduction in inconsistency for both event priorities, while maintaining a reasonable throughput with a 45%
decrease. Hestia also adapts to the workload saturation by balancing performance and consistency. Furthermore, Hestia enables users to balance consistency, throughput, and overhead according to their preferences and workload characteristics.
Our research highlights the importance of applying application-centric consistency that meets the specific requirements of event-driven distributed systems, recognising the diversity of applications and their varying requirements. We contribute to a comprehensive approach for achieving application-centric consistency in a wide range of contexts.