Репликация данных (Data Replication)

Процесс хранения идентичных копий данных на нескольких серверах для повышения доступности, отказоустойчивости и скорости чтения.

Типичные топологии включают Primary-Secondary (запись только на главный узел) и Active-Active (запись на все узлы, требует сложного разрешения конфликтов, например, через CRDT).

        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;

      

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

Представьте, что у вас есть секретный рецепт в одной тетради. Если собака съест тетрадь, рецепт исчезнет. Репликация — это как раздать копии рецепта пятерым друзьям из разных городов. Если ваша тетрадь сгорит, у друзей останется копия. Но если вы измените количество соли, придется обзвонить всех, чтобы они обновили свои копии.

🤓 Expert Deep Dive

Теорема CAP: при разделении сети (Partition) система должна выбирать между Согласованностью (Consistency) и Доступностью (Availability). Стратегии: 1. Синхронная (гарантирует согласованность, но высокая задержка). 2. Асинхронная (низкая задержка, но риск потери данных, согласованность в конечном счете — eventual consistency). 3. На базе консенсуса (Raft, Paxos), требующая кворума. Блокчейны используют асинхронную P2P репликацию с вероятностным консенсусом (например, PoW).

❓ Частые вопросы

Why do databases use data replication?

To prevent data loss if a server crashes (fault tolerance), and to allow more people to read the data simultaneously without overloading a single server.

What is the difference between synchronous and asynchronous replication?

Synchronous replication makes sure every copy is updated before finishing a task (slower but safer). Asynchronous replication finishes the task immediately and updates the copies in the background (faster, but risks data loss if it crashes before syncing).

Is a blockchain a replicated database?

Yes. A blockchain is a decentralized, peer-to-peer replicated database. Every full node on the network holds a complete, identical copy of the entire transaction history.

📚 Источники