¿Trabaja con clientes cuyas Bases de Datos son actualizadas por usuarios en locaciones múltiples? ¿Sus usuarios están en distintas zonas horarios? Si larespuesta es “Sí”, el desafío para el DBA es cómo manejar sistemas replicados que permitan un acceso rápido a la Base de Datos en vistas de poder hacer una replicación asincrónica veloz. En PostgreSQL, la replicación multiaster es provista por una herramienta llamada BDR, que es totalmente soportada por Cybertec, todo el día todo el año.

¿Dónde se utiliza replicación PostgreSQL multimaster?

Mientras que la replicación single-master es claramente más deseable si usted está buscando alta disponibilidad en una sola locación o si usted necesita más performance de su Base de Datos, la replicación multimaster es una opción excelente para Bases de Datos distribuidas que pueden ser conectadas a través de redes no confiables.

Un caso de uso típico:

Imagine que su compañía vende productos en Berlin (Alemania) y Seattle (EEUU) pero la dirección quiere ver la infromación de todas las ventas en Londres. Este es un caso de uso ideal para la replicación PostgreSQL multimaster.

PostgreSQL Replication Multimaster

Los datos serán replicados en todos los puntos para asgurarse que todos los datos estén en todas las locaciones. Es interesante ver que la replicación puede darse de una manera muy selectiva. No hay necesidad de replicar la Base de Datos entera o incluso instancias completas. Se puede replicar solamente un subconjunto de los datos en el caso de que no toda la data sea necesaria en todas las locaciones.

¿Cómo funciona la replicación multimaster?

En PostgreSQL, la replicación multimaster se construye sobre una funcionalidad llamada “Logical Decoding”. La idea es estar adjunto al log de transacciones de PostgreSQL y transformar los cambios guardados en el log de transacciones a un formato más legible. En casos de replicación multimaster, el log de transacciones es transformado a SQL y replicado en toos los otros nodos del cluster.

Manejo de conflictos de replicación

Si uested decidió usar BDR, debería tener en cuenta que la replicación multimaster requiere de un manejo sofisticado de los conflictos. Si la misma data es cargada en dos locaciones, PostgreSQL debe decidir qué transacción mantener. El manejo de conflictos es un requisito fundamental en todos los sistemas multimaster y debería ser tomada en consideración cuando se usa esta técnica de replicación

PostgreSQL Replication Connection and API URL

A diferencia de las configuraciones single-master, las configuraciones multimaster pueden retroceder una transacción después de que el cliente haya recibido un commit, y esto podría ser una sorpresa para algunos desarrolladores.

Los conflictos son una parte importante de la replicación multimaster en PostgreSQL. BDR permite escribir administradores de conflictos propios y también provee una gran flexibilidad tanto a desarrolladores como a administradores. Cybertec lo ayudará a armar sus propios administradores de conflictos.

Entendiendo conflictos de divergencia

La replicación multimaster es una herramienta valiosa para distribuir datos por la red. Sin embargo, no todos los conflictos pueden ser resueltos en todas las circunstancias. Por eso es que nosotros lo prevenimos: si usted está usando replicación multimaster para propósitos equivocados y de manera errónea, los datos en sus nodos pueden diferir. Si usted está buscando una solución de alta disponibilidad, por favor visite nuestra página sobre Patroni y replicación streaming

Más sobre patroni

Ayuda profesional

Contáctenos hoy para recibir su oferta personal de Cybertec. Ofrecemos entregas a tiempo, tratamiento profesional y más de 17 años de experiencia en PostgreSQL.

Contáctenos