Data Replication

Lesson 31 of 25611 min readPremium lesson preview
In this lesson1 sections

Data Replication

Replication keeps more than one copy of data so the service can plan for failed nodes, distant readers, and growing read load. The difficult part is deciding when a write counts as complete and what another replica may return before every copy catches up.

We require the following characteristics from a data store:

  • Availability: Resilience against faults (disk, node, network, or power failures).

  • Scalability: Ability to handle increasing reads, writes, and traffic.

  • Performance: Low latency and high throughput.

A single node has finite capacity and creates a failure dependency. Check which requirement justifies additional copies and which guarantees those copies must preserve.

Replication

Replication refers to maintaining multiple copies of data across different nodes, often geographically distributed, to improve availability, scalability, and performance. In this lesson, we assume the entire dataset fits on a single node. This assumption no longer holds when we introduce data partitioning. In production systems, replication and partitioning are typically combined.

Replication offers several benefits in distributed systems:

  • Places data closer to users, reducing latency.

  • Allows the system to operate despite node failures, improving availability.

  • Enables multiple nodes to serve read requests, increasing read throughput.

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.