Изменения
структура
|definition =
'''Репликация''' — это поддержание одинаковых данных на нескольких узлах распределенной системы.}}
== Реализация репликации ==
=== Типы репликации ===
* Синхронная — гарантирует одинаковое состояние реплик, требует введения распределенных транзакций.
* Асинхронная — допускает задержки репликации.
=== С Репликация основной копией ===
[[Файл:Replication_Master.png|300px|thumb|right|Репликация с основной копией]]
Есть одна главная копия данных, изменения из неё запросы на запись поступают только туда, а затем реплицируются на все остальные копии. За согласованность изменений отвечает главная копия. Если изменения приводят к несогласованному состоянию, то транзакция откатывается. Запросы на чтение могут быть обработаны любой репликой.
Такая реализация эффективна, если количество записей сильно меньше количества запросов чтения.
=== Симметричная репликация ===
[[Файл:Replication_Symmetric.png|300px|thumb|right|Симметричная репликация]]
Чтение и запись могут быть обработаны любой копией. При необходимости реплики могут работать автономно.
* При выходе из строя любой реплики, состояние системы не согласовано и данные потеряны.
Таким образом, синхронная репликация сложна и малонадежна. В реалньости реальности распределенные базы данных решают эту проблему лучше.
=== Рассылка изменений ===
Информация обо всех сделанных изменения изменениях содержится в журнале транзакций. Репликация достигается за счёт рассылки протоколов транзакций.Это можно сделать двумя способами:
==== Репликация операторов ====