🗂️

Replication in Systems and System Design

Jul 16, 2024

Lecture on Replication in Systems and System Design

Introduction

  • Topic: Replication (ريكي شن)
  • Importance: Critical for large-scale applications, ensuring reliability and availability.

Initial System Description

Current Setup

  • Server Location: Home in Egypt
  • Single Server and Single Database
  • Users: Accessing from Egypt and London

Problems with Current System

  1. Power Outage

    • Occurrence: Daily electrical outages (e.g., 4-6 PM)
    • Consequence: Database and server downtime
  2. Hard Disk Corruption

    • Hard disk failure can corrupt data
    • Backup solutions might fail, exacerbating problems

Solution: Replication

Concept

  • Definition: Making multiple copies of the database
  • Configuration: Multiple databases (e.g., DB1, DB2, DB3)
  • Benefits: Increased reliability, fault tolerance, load distribution

Solving Existing Problems

  1. Power Outage: Other databases remain operational, ensuring service availability
  2. Hard Disk Corruption: Other replica databases provide data redundancy, ensuring data recovery

Types of Replication

1. Synchronous Replication (سينكرنس ريكيشن)

  • Mechanism: Data is replicated across replicas before acknowledging the operation to the client
  • Benefit: Strong consistency, immediate availability of the newest data across all replicas
  • Disadvantage: Increased delay for write operations due to replication time

2. Asynchronous Replication (آسينكرونس ريكيشن)

  • Mechanism: Data is replicated in the background after the operation is acknowledged to the client
  • Benefit: Reduced write operation delay, faster response time
  • Disadvantage: Eventual consistency, potential staleness in read data across different regions

Example Scenarios

Synchronous Replication

  • Process: Immediate replication before confirmation
  • Consistency: Data is strongly consistent across all replicas; users see updated data simultaneously
  • Issues: Write operations are slower due to the need for immediate replication

Asynchronous Replication

  • Process: Immediate confirmation followed by background replication
  • Consistency: Eventual consistency, potential for stale reads
  • Benefits: Improved write response time
  • Common Use: Web applications, social media where slight delays in data consistency are acceptable

Summary

  • Types Recap: Synchronous (strong consistency but slower writes) vs. Asynchronous (faster writes but eventual consistency)
  • Real-world application: Ensuring reliability and efficiency in system design with replication strategies.

Concluding Remark: Understanding replication types is crucial in system design for improving reliability and performance in large-scale applications.


“سبحانك اللهم وبحمدك اشهد ان لا اله الا انت استغفرك واتوب اليك”