Consistency & Consensus for System Design Interview (2): implementing linearizability
PREV | HOME | NEXT | System Design Resource List
Don’t forget to get your copy of Designing Data Intensive Applications, the single most important book to read for system design interview prep!
Check out ByteByteGo’s popular System Design Interview Course
Consider signing-up for paid Medium account to access our curated content for system design resources.
Introduction
In this lesson, we’ll revisit the various replication schemes from our discussion on replication in distributed systems and explore them to determine if they can conform to the requirements of linearizability. Trivially, a system with no replication and having a single copy of data with operations executing atomically is a linearizable system. However, such a system isn’t fault tolerant and a failure would make data unavailable. Let’s see how replicated systems fare:
Single leader replication
In a single leader replication, the master copy of the data resides with the leader and all writes are directed to the leader. The system can consist of synchronous and asynchronous followers. In the absence of split-brain and concurrency bugs, alongwith all reads being…