Sobes.tech
Junior

¿Qué es la replicación en el contexto de bases de datos y aplicaciones?

sobes.tech AI

Respuesta de la IA

La replicación es el proceso de crear y mantener múltiples copias de datos de una base de datos o estado de una aplicación en diferentes servidores.

Objetivos de la replicación:

  • Mayor disponibilidad (Alta Disponibilidad): Cuando un servidor falla, otras réplicas pueden continuar atendiendo las solicitudes.
  • Mejora de la escalabilidad: Las solicitudes de lectura pueden distribuirse entre las réplicas, reduciendo la carga en el servidor principal.
  • Distribución geográfica (Recuperación ante desastres): Las réplicas pueden estar en diferentes centros de datos para protegerse contra fallos locales.
  • Reducción de latencias: Los usuarios pueden leer datos de la réplica más cercana.

Tipos de replicación:

  • Síncrona: Los cambios se escriben en todas las réplicas antes de que la transacción sea confirmada al cliente. Garantiza una consistencia fuerte, pero puede aumentar la latencia de escritura.
  • Asíncrona: La transacción se confirma al cliente después de escribirse en el servidor principal. Las réplicas se actualizan posteriormente. Ofrece un mayor rendimiento de escritura, pero puede haber desincronización temporal de datos.

Modos de replicación:

  • Master-Replica (o Master-Slave): Una réplica (master) acepta todas las operaciones de escritura, y las demás (réplicas) solo leen, recibiendo cambios del master.
  • Multi-Master: Varias réplicas pueden aceptar operaciones de escritura. Requiere un mecanismo de resolución de conflictos.

En el contexto de las aplicaciones, la replicación puede referirse a la creación de múltiples instancias de la aplicación (servicios) con los mismos objetivos: aumentar la disponibilidad y la escalabilidad. Por ejemplo, ejecutar varios pods en Kubernetes, cada uno siendo una réplica del mismo servicio.