Todo lo que dices es correcto, por ese motivo es que en mi caso puntual solo
utilizo haproxy, en servidores esclavos que también tienen pgBouncer, los
servidores maestros no pasan por el haproxy, solo tienen pgbouncer


 
CLIENTES/APP

 
HAPROXY


 
pgBouncer                 pgBouncer                         pgBouncer
pgBouncer              

 
SLAVE1             <--        SLAVE2               <--         MASTER1
<---->          MASTER2

        Saludos cordoales



-----Mensaje original-----
De: Alvaro Herrera [mailto:alvhe...@2ndquadrant.com] 
Enviado el: martes, 27 de septiembre de 2016 13:30
Para: Mario Soto Cordones <marioa.soto.cordo...@gmail.com>
CC: 'Lazaro Garcia' <lazaro3...@gmail.com>; 'Emanuel Calvo'
<3man...@gmail.com>; pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] BDR y balance de carga

Mario Soto Cordones escribió:
> Estas en lo correcto, pero, depende del punto de vista que se mire, 
> para "mi" Alta Disponibilidad es que mis usuarios nunca se enteren que 
> se cayó tal o cual nodo (entiéndase por usuario cualquier aplicación), 
> es por ese motivo que incluí en la ecuación el haproxy, Que me permite 
> atender peticiones, no importando que nodo se cayó.

OK.  ¿qué pasa con el usuario que tenía una transacción de escritura en la
mitad cuando el maestro se cayó?  Espero que no me digas que el haproxy va a
repetir todo lo que la transacción ejecutó en el primer maestro en el
standby que acabas de promover y continuar la transacción transparentemente
desde ahí, porque eso sería terriblemente oneroso.
Creo que la solución sensata a ese problema es que la aplicación le diga al
usuario "ups hubo un problemita" y le pida repetir la operación.

Si tomas esa aproximación, entonces no es terriblemente importante qué hace
la aplicación del balanceo de carga, ¿no?  Es suficiente con saber quién es
maestro y quién es standby.

BDR no es magia.  Tiene un montón de limitaciones.  Si pones una aplicación
cualquiera a trabajar sin tener eso en cuenta, es seguro que algo
desagradable te va a morder en un lugar donde te va a doler mucho.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Responder a