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