Data Replication

Data replication створює кілька копій даних у різних місцях для підвищення доступності, довговічності та відмовостійкості, використовуючи синхронні або асинхронні методи з різними гарантіями узгодженості.

Data replication розподіляє дані між кількома місцями для зменшення єдиних точок відмови та покращення пропускної здатності читання та аварійного відновлення. Він підтримує синхронну реплікацію (оновлює всі копії атомарно в реальному часі, забезпечуючи сильну узгодженість, але вищу затримку), асинхронну реплікацію (оновлює копії після коміту, зменшуючи затримку запису, але дозволяючи відставання) та напівсинхронну реплікацію (підтвердження від підмножини реплік для балансування затримки та узгодженості). Поширені топології включають master-slave (primary-secondary), multi-master (active-active) та peer-to-peer. Основні виклики включають підтримку узгодженості даних між репліками, вирішення конфліктів у налаштуваннях multi-master, обробку мережевої затримки, зсуву годинника та еволюції схеми, а також дрейфу даних під час оновлень. Техніки управління узгодженістю включають консенсусні протоколи (наприклад, Paxos, Raft), write-ahead logs, version vectors та CRDTs для конкретних типів даних. При виборі стратегії реплікації враховуйте цільові показники RPO/RTO, бюджети затримки, пропускну здатність, локальність даних та нормативні вимоги, пов'язані з data replication, аудитом та зберіганням.

        graph LR
  Center["Data Replication"]:::main
  Rel_data_recovery["data-recovery"]:::related -.-> Center
  click Rel_data_recovery "/terms/data-recovery"
  Rel_data_obfuscation["data-obfuscation"]:::related -.-> Center
  click Rel_data_obfuscation "/terms/data-obfuscation"
  Rel_data_integrity["data-integrity"]:::related -.-> Center
  click Rel_data_integrity "/terms/data-integrity"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простими словами

Generated ELI5 content

🤓 Expert Deep Dive

Generated expert content

❓ Часті питання

What is the purpose of data replication?

To increase availability, reliability, and fault tolerance by maintaining multiple copies of data in separate locations, enabling failover, disaster recovery, load distribution, and durability.

What are the main types of replication?

Synchronous (updates all replicas atomically), semi-synchronous (acknowledgment from some replicas), and asynchronous (updates copied later).

What is conflict resolution in replication?

In multi-master setups, concurrent writes may conflict; use last-writer-wins, version vectors, CRDTs, or application-specific strategies.

What is replication lag?

The delay between a write and its propagation to replicas, affecting read freshness.

What are common replication topologies?

Master-slave/primary-secondary, multi-master/active-active, and peer-to-peer.

Are CRDTs always suitable?

CRDTs help with certain data types and operations; not all data models benefit; require careful data design.

📚 Джерела