El -10/01/37 13:59, Jaime Casanova escribió:
2009/12/22 Cesar Martin<cmart...@gmail.com>:
En el servidor nuevo había pensado poner Postgres en la versión 8.3.9 y
pgpool-II en versión 2.3.1 con Heartbit para hacer un cluster e intentar
repartir las consultas entre ambos servidores.
el problema con pgpool es que replica sentencias, y aunque la nueva
version dice trabajar correctamente al replicar funciones volatiles
como now() lo hace porque sabe que hacer para ese caso especifico.
Todo es cosa que en tu aplicacion tengas una funcion volatil que
pgpool no conozca (por ejemplo una creada por ti) y la replicacion ya
no funcionará bien...

Es más hay SELECT´s no deben ser escogidos para balanceo de carga, por
ejemplo los que ejecuten una función volatil. Imagina esta:
SELECT actualiza_vista_materializada(); o SELECT elimina_procesos_viejos();

todas esas sentencias que no deben ser escogidas para balanceo de
carga sino que deben replicarse deben ir antecedidas de el comentario
/*REPLICATION*/

en otras palabras, no es tan transparente como quisieramos hay que
verificar que las consultas que estas ejecutando en tu aplicación son
seguras para pgpool

Nosotros estuvimos trabajando con pgpool 2 y encontramos ciertos problemas con lo que menciona jaime, sobre todo cuando tiene funciones que internamente realizan un insert update o delete, ya que el balanceador solo interpreta que será una consulta ( select funcion ). Lo cual provoca inconsistencia en los datos y el servicio saca al nodo que tenga inconsistencia del proceso ( es decir, queda en estado de shutdown).

--
Atentamente

ISC. Manuel Alejandro Estevez Fernandez


--
TIP 5: ¿Has leído nuestro extenso FAQ?
        http://www.postgresql.org/docs/faqs.FAQ.html

Reply via email to