Data Replication
Data replication crea múltiples copias de datos en diferentes ubicaciones para mejorar la disponibilidad, durabilidad y tolerancia a fallos, utilizando métodos síncronos o asíncronos con diferentes garantías de consistencia.
Data replication distribuye datos a través de múltiples ubicaciones para reducir puntos únicos de fallo y mejorar el rendimiento de lectura (read throughput) y la recuperación ante desastres (disaster recovery). Soporta synchronous replication (actualiza todas las copias atómicamente en tiempo real, asegurando strong consistency pero con mayor latencia), asynchronous replication (actualiza las copias después del commit, reduciendo la latencia de escritura pero permitiendo lag), y semi-synchronous replication (reconocimiento de un subconjunto de réplicas para balancear latencia y consistencia). Las topologías comunes incluyen master-slave (primary-secondary), multi-master (active-active) y peer-to-peer. Los desafíos clave incluyen mantener la consistencia de datos entre réplicas, resolver conflictos en configuraciones multi-master, manejar la latencia de red, el desfase de reloj (clock skew) y la evolución del esquema (schema evolution), así como el data drift durante las actualizaciones. Las técnicas para la gestión de la consistencia incluyen consensus protocols (ej. Paxos, Raft), write-ahead logs, version vectors y CRDTs para tipos de datos específicos. Al elegir una estrategia de replication, considere los objetivos RPO/RTO, los presupuestos de latencia (latency budgets), el ancho de banda (bandwidth), la localidad de los datos (data locality) y los requisitos regulatorios relacionados con data replication, auditoría (auditing) y retención (retention).
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;
🧒 Explícalo como si tuviera 5 años
Generated ELI5 content
🤓 Expert Deep Dive
Generated expert content
❓ Preguntas frecuentes
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.