Gestión de conflictos en la replicación activa-activa
La extensión pgactive
funciona por base de datos y no por clúster. Cada instancia de base de datos que utiliza pgactive
es una instancia independiente y puede aceptar cambios de datos de cualquier fuente. Cuando se envía un cambio a una instancia de base de datos, PostgreSQL lo confirma localmente y, a continuación, utiliza pgactive
para replicar el cambio de forma asíncrona en otras instancias de base de datos. Cuando dos instancias de base de datos de PostgreSQL actualizan el mismo registro prácticamente al mismo tiempo, puede producirse un conflicto.
La extensión pgactive
proporciona mecanismos para la detección y la resolución automática de conflictos. Realiza un seguimiento de la marca de tiempo en que se confirmó la transacción en ambas instancias de base de datos y aplica automáticamente el cambio con la última marca de tiempo. La extensión pgactive
también registra cuando se produce un conflicto en la tabla pgactive.pgactive_conflict_history
.
El pgactive.pgactive_conflict_history
seguirá creciendo. Puede definir una política de depuración. Esto se puede hacer borrando algunos registros de forma regular o definiendo un esquema de partición para esta relación (y, luego, separando, descartando o truncando las particiones de interés). Para implementar la política de depuración de forma regular, una opción es usar la extensión pg_cron
Consulte la siguiente información con un ejemplo para la tabla de historial de pg_cron
Programación de mantenimiento con la extensión pg_cron de PostgreSQL.