¿Qué es una replicación multimaestro?
La replicación multimaestro es una técnica empleada por el software de gestión de bases de datos para que muchos usuarios puedan usar y actualizar múltiples copias de una única base de datos almacenada en diferentes computadoras de forma descentralizada. Cuando se realiza un cambio en una base de datos que utiliza la replicación multimaestro, el cambio que se realiza se transmite a todas las demás computadoras de la red para que se actualicen todas las copias de la base de datos utilizada. Algunas ventajas de una configuración de replicación multimaestro incluyen copias de seguridad de datos redundantes y una arquitectura descentralizada en la que las actualizaciones de las copias de una base de datos pueden mantenerse incluso si una de las computadoras de la red deja de funcionar. Sin un único sistema maestro asignado, como es el caso en la arquitectura maestro-esclavo, los cambios y los comandos administrativos para controlar la base de datos se pueden emitir desde cualquiera de los terminales de varios maestros dentro de la red en lugar de depender de un solo terminal físico. La mayor complicación que puede ocurrir con el uso de un sistema de replicación multimaestro implica actualizar todos los sistemas lo suficientemente rápido como para que los datos permanezcan sincronizados en todo momento a través de la red.
El término "multimaestro" proviene del método más básico de replicación maestro-esclavo, en el que un único terminal se designa como el maestro. En una situación maestro-esclavo, solo un maestro es capaz de actualizar la información en las unidades esclavas. Un sistema de replicación multimaestro tiene múltiples sistemas designados como maestros y cada maestro solo puede ser responsable de sí mismo o podría estar a cargo de una cantidad de computadoras conocidas como grupo de replicación. Con múltiples maestros, cualquier sistema maestro puede iniciar un cambio en todos los demás sistemas maestros, lo que puede conducir a interacciones de red muy complejas en sistemas muy grandes.
Hay dos formas de replicación multimaestro, la primera es la replicación sincrónica. La replicación síncrona funciona actualizando en tiempo real todas las copias de una base de datos cada vez que se realiza un cambio. Esto elimina la mayoría de las situaciones que pueden ocurrir cuando los datos no se sincronizan a través de la red, pero crea una gran cantidad de tráfico de red y puede requerir una gran cantidad de potencia de procesamiento para implementarse en un sistema más grande. Por estas razones, la replicación sincrónica se usa principalmente en redes donde solo hay un puñado de computadoras maestras.
El segundo tipo de replicación multimaestro es la replicación asincrónica. En lugar de actualizar los sistemas cada vez que se realiza un cambio, los cambios en una base de datos se almacenan como eventos en cada sistema, y esos cambios se aplican cuando se desencadena un evento o durante los períodos de actualización programados. Esto significa que se usa menos ancho de banda de red y potencia de procesamiento, pero aumenta las posibilidades de que dos usuarios en algún momento intenten cambiar la misma información de manera conflictiva debido a la demora en la actualización o la latencia. La mayoría de los sistemas de administración de bases de datos distribuidas utilizan la replicación asincrónica debido a la baja cantidad de recursos que se consumen en comparación con la replicación síncrona multimaestro.