[Pgsql-ayuda] Rendimiento de un tipo de equipo

Alvaro Herrera alvherre@dcc.uchile.cl
Wed, 16 Jul 2003 20:45:06 -0400


On Wed, Jul 16, 2003 at 08:29:51AM -0500, Víctor Antequera Peña wrote:
> Gracias por responder, podrías hablar un poco mas sobre ese sistema de
> replicación ad-hoc, la aplicación que voy a desarrollar se va a instalar en
> otras sucursales y necesitamos que esa información se actualice acá y me
> serviría mucho tu experiencia...

Bueno, el sistema de adquisición de datos simplemente agrega nuevas
tuplas a las tablas correspondientes.  Además, cada tupla tiene un
identificador del servidor que la tomó.

El "sistema de replicación" (es un nombre que le queda grande -- es
harto primitivo) simplemente copia los datos hacia el servidor central
que tienen una fecha superior a la "máxima fecha".  Este dato se
determina usando una tabla adicional ("ultimas_replicaciones" o algo
así); si no hay tupla correspondiente a ese par servidor/servicio en la
tabla ultimas_replicaciones, se toma el max(fecha) de la tabla de datos;
si eso tampoco existe, se copian todos.

Es un sistema sorprendentemente simple; tanto, que no ha cambiado desde
que se puso en funcionamiento hace dos años (de hecho sigue corriendo en
Postgres 7.1.3)


El sistema inverso, es decir, el que copia datos desde el servidor
central hacia los 'monitoreadores' (estos son meta-datos acerca de qué
y cómo deben hacer el proceso de adquisición de datos), salió bastante
más complicado...  primero fue rserv, pero no funcionó bien... en eso yo
me fui de la empresa, y cuando volví, encontré que lo habían cambiado
por

echo "begin; drop table metadatos;" > archivo-de-dump
pg_dump -t metadatos >> archivo-de-dump
"echo commit" >> archivo-de-dump

luego copiar hacia el otro lado y restaurar.  Funciona, pero me da
vergüenza contarlo.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Right now the sectors on the hard disk run clockwise, but I heard a rumor that
you can squeeze 0.2% more throughput by running them counterclockwise.
It's worth the effort. Recommended."  (Gerry Pourwelle)