¿Qué es una replicación multimaestro?

La replicación multimaestro es una técnica empleada por el software de administración de bases de datos para que muchos usuarios puedan usar y actualizar múltiples copias de una sola base de datos almacenada en diferentes computadoras de una manera 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 que se está utilizando. Algunas de las ventajas de una configuración de replicación multimaestro incluyen copias de seguridad de datos redundantes y una arquitectura descentralizada en la que se pueden mantener las actualizaciones de copias de una base de datos incluso si una de las computadoras de la red deja de funcionar. Sin un solo sistema maestro asignado, como es el caso de la arquitectura maestro-esclavo, los cambios y los comandos administrativos para controlar la base de datos se pueden emitir desde cualquiera de los terminales multimaestro 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 para que los datos permanezcan sincronizados en todo momento en toda la red.

El término “multimaestro” proviene del método más básico de replicación maestro-esclavo, en el que se designa un solo terminal como maestro. En una situación maestro-esclavo, solo un maestro es capaz de actualizar la información de las unidades esclavas. Un sistema de replicación multimaestro tiene varios sistemas designados como maestros y cada maestro solo puede ser responsable de sí mismo o podría estar a cargo de varias computadoras conocidas como grupo de replicación. Con varios 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 sincrónica 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 están sincronizados en la red, pero crea una gran cantidad de tráfico de red y puede requerir una gran cantidad de potencia de procesamiento para implementar en un sistema más grande. Por estas razones, la replicación síncrona 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 activa 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 intenten en algún momento cambiar la misma información de formas contradictorias debido a la demora en la actualización o la latencia. La mayoría de los sistemas de administración de bases de datos distribuidos utilizan la replicación asincrónica debido a la baja cantidad de recursos que se consumen en comparación con la replicación multimaestro sincrónica.