2 min read

Database Replication

Database replication is the process of keeping a copy of the same data on multiple machines (nodes) that are connected via a network.

1. Why Replicate?

  • High Availability: If one machine goes down, others can continue serving data.
  • Latency: Keep data geographically closer to users (e.g., US users connect to US replica, EU users to EU replica).
  • Scalability: Distribute the load. You can have one machine handle writes and 10 machines handle reads.

2. Leader-Based Replication (Master-Slave)

This is the most common mode (used by MySQL, PostgreSQL, MongoDB).

  • Leader (Master): Handles all Write requests (INSERT, UPDATE, DELETE). It writes to its local storage and sends the data change stream to followers.
  • Followers (Slaves): Handle Read requests. They receive the change stream from the leader and update their own local copy.

Pros & Cons

  • Pros: Simple to understand. No write conflicts (only one place to write).
  • Cons: If the leader fails, a failover process must promote a follower to be the new leader. Write throughput is limited to the capacity of a single node.

3. Multi-Leader Replication (Multi-Master)

In this setup, more than one node can accept writes. Replication happens between all leaders.

  • Use Case: Multi-datacenter applications. You have a leader in the US and a leader in the EU.
  • Conflict Resolution: The biggest challenge. If User A updates a record in the US and User B updates the same record in the EU at the same time, the databases must resolve the conflict (e.g., Last Write Wins).

4. Synchronous vs. Asynchronous

  • Synchronous: The leader waits for the follower to confirm the write before telling the client "Success".
    • Pros: Guaranteed consistency. No data loss if leader fails.
    • Cons: If the follower is slow or down, the write blocks.
  • Asynchronous: The leader sends the write to the follower but doesn't wait for confirmation.
    • Pros: Fast writes. Leader isn't slowed down by followers.
    • Cons: If the leader crashes before sending the data, that write is lost (Eventual Consistency).

programming/distributed-systems programming/database-basics programming/cap-theorem