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