Re: Resultados de PGCluster y slony

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: v13n35(at)gmail(dot)com
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Resultados de PGCluster y slony
Date: 2006-01-30 15:44:28
Message-ID: 20060130154428.GD7580@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

viernes escribió:
> muchas gracias
>
> Un cliente tiene 7 susucurales a lo largo del pais y trabaja un sistema de
> ventas e inventarios a postgres, desde la matriz aunque la mayoria de las
> operaciones son de consulta(para esto Slony funciona bien) de vez en cuando
> modifica almacenes o hace ajustes a cxc si lo hace a traves de la vpn es muy
> muy lento asi que estoy analizando de replica maestro maestro.

Hmm. En este caso la replicacion maestro-maestro, segun el modelo
Slony-II, no te sirve, porque lo que hace ese sistema es mantener en
comunicacion constante a todos los maestros (para asegurar que no hay
conflictos entre las cosas que escribe uno y las que escribe otro), de
manera que veria la misma lentitud.

Lo que yo haria seria un sistema maestro-maestro asincrono con
resolucion de conflictos. Que significa esto: que cada maestro es
"independiente" pero de vez en cuando (cada una hora, una vez al dia, o
como sea) se comuniquen los cambios unos a otros. Y cuando hayan
cambios que entren en conflicto, que haya algun algoritmo para
resolverlos, ya sea manualmente o automaticamente.

Por ejemplo, si tienes que manejar creacion de items en ambos extremos,
y usas una llave primaria secuencial, lo mas sencillo es que uno use una
secuencia que parta de 1 y otro una secuencia que parta de 5000000. Asi
los numeros que generen nunca entraran en conflicto.

Para manejar modificaciones de cantidades, lo mejor es que se almacenen
como deltas y que haya un servidor "super-maestro" que tome los deltas y
los agregue al total, y se propague ese total.

Etc etc.

Tienes que especificar como se manejara cada situacion potencialmente
conflictiva. No es facil, pero como ves no hay nada que se pueda
determinar de antemano: para cada caso tienes que definir una politica.

Suerte.

--
Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC
Thou shalt check the array bounds of all strings (indeed, all arrays), for
surely where thou typest "foo" someone someday shall type
"supercalifragilisticexpialidocious" (5th Commandment for C programmers)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-01-30 15:51:21 Re: La mejor manera de actualizar una tabla con datos externos.
Previous Message Alvaro Herrera 2006-01-30 15:37:18 Re: DBLINK