Consistency & Consensus for System Design Interview (2): implementing linearizability

SystemDesign
Tech Wrench
Published in
6 min readMay 16, 2023

--

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:

Grokking Modern System Design for Software Engineers and Managers

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…

--

--