Defining Linearizability in Distributed Systems by Linearizability Checker - Naghiyev, Hasan (ADA University, 2023)
Distributed systems are a vital part of contemporary computing infrastructure, and upholding data consistency across these systems is an essential aspect of their design. Consistency models, including strong, sequential, and eventual consistency, are pivotal in ensuring coherence and precision of data within distributed systems. Nevertheless, the choice of an appropriate consistency model is contingent upon the specific needs of a project, as it frequently entails balancing trade offs among consistency, availability, and partition tolerance, as emphasized by the CAP theorem. In this study, we concentrate on strong consistency, or linearizability, since it offers an instinctive approach to reasoning about data in distributed systems. The main goal of this study is to create a linearizability checker that can analyze files from client distributed databases and pinpoint transactions that violate strong consistency. The checker also yields output proposing the accurate values for these transactions. Our methodology encompasses gathering query history files from multiple database instances, merging them into a unified history file, and subsequently examining this file for consistency violations. A report is then generated to inform the user about any detected inconsistencies. Our linearizability checker is composed of two subsystems: the User Interface and the Server. The User Interface is accountable for securely obtaining input files from the user, transferring them to the server, and presenting the generated report. In contrast, the Server is in charge of merging the input files, validating strong consistency, producing a report, and returning it to the User Interface. To tackle the time skew issue in distributed systems, we employ the Network Time Protocol (NTP) to synchronize clocks throughout the system. Currently, our checker is confined to working with Redis database files; however, it can be expanded to accommodate additional databases in the future. By identifying consistency violations in distributed systems, our linearizability checker serves as an indispensable instrument for ensuring data accuracy and integrity in enterprise projects.
Keywords: Distributed databases -- Consistency models; Database management -- Tools and techniques; Computer systems -- Fault tolerance; IT and Engineering