Abstract:
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.