desarrollo deaAplicacion grande

Ricardo Mun~oz A. rmunoz en pjud.cl
Lun Sep 24 17:39:52 CLT 2007


Alvaro Herrera wrote:
> Rodrigo Fuentealba escribió:
>   
>> El 24/09/07, Alvaro Herrera <alvherre en alvh.no-ip.org> escribió:
>>     
>>> Ricardo Mun~oz A. escribió:
>>>       
>>>> cierto. pero depende del modelo y la aplicacion si es que en algun momento
>>>> se puede producir un conflicto... por algo los mismos desarrolladores de
>>>> Slony-I indican que sirve cuando todos los nodos estan disponibles todo el
>>>> tiempo...
>>>>         
>> Estás poniendo a Slony-I para que se adapte a tu modelo, cuando en
>> realidad es al revés, debes adaptar tu modelo para que funcione con
>> esta solución. Por eso es que Álvaro hablaba de tablas heredadas; por
>> lo que entiendo, y como se me ocurre usarla, es hacer una tabla
>> maestra en cada zona que "extienda" a la tabla de datos total,
>> utilizando la característica de orientación a objetos de PostgreSQL, y
>> a esa tabla que extiende la pones como maestra en la aplicación. ¿Es
>> así, Álvaro?
>>     
>
> Sí, básicamente de eso se trata.
>   

yo tambien entendi lo mismo, y por eso dije "depende del modelo si se 
produce un conflicto". en ningun momento dije que Slony-I se deberia 
adaptar al modelo, sino todo lo contrario.

>>> Lo que yo intentaria
>>> hacer seria tener copias esclavas de la base de dato en cada una de las
>>> sucursales, de solo lectura (con Slony-I); y que las escrituras vayan a
>>> la base de datos central.  De este modo no se notaria la lentitud del
>>> enlace en las consultas de solo lectura (puesto que son locales a la
>>> sucursal), y se requeriria contactar al central solamente para las
>>> escrituras.
>>>       
>> Mira, este plugin lo estamos arreglando y usando para un sitio Web en
>> el cual tenemos ese inconveniente a nivel nacional, y no ha tenido
>> mayor problema hasta ahora (aunque es alfa!):
>>
>> http://trac.symfony-project.com/trac/wiki/sfPropelLoadbalancerPlugin
>>     
>
> Otra forma de hacer esto sin necesidad de modificar la aplicación es
> usando pgpool o pgBouncer.
>   

creo que el plugin que menciona Rodrigo le permite a sus aplicaciones 
hechas en Symfony escribir (UPDATE, DELETE) siempre en el mismo nodo 
(maestro) y las operaciones SELECT hacerlas en cualquiera de los nodos 
esclavos disponibles. una tecnica bastante comun de balanceo de carga y 
muy facil de implementar tambien en CakePHP... ;)

pgpool y/o pgBouncer creo que no permiten hacer lo mismo... aunque 
pgpool-II se ve interesante... ;)

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)


Más información sobre la lista de distribución Linux