Skip site navigation (1) Skip section navigation (2)

Re: query asincronico y SPI

From: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
To: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>,Lista postgreslq Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: query asincronico y SPI
Date: 2005-09-23 20:38:50
Message-ID: e9b17cde050923133819425787@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Gracias Alvaro, me quedo muy claro, buscare informacion respecto de 
LISTEN/NOTIFY y probare .

Saludos

El 23/09/05, Alvaro Herrera<alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> On Fri, Sep 23, 2005 at 02:03:58PM -0400, Mario Soto Cordones - Venezuela wrote:
>
> > Tengo una vista materializada que me actualiza una tabla de
> > referencias cruzadas, esto me funciona muy bien y me aliviana muchos
> > procesos de busquedas de registros en una tabla de mas de 4 millones
> > de registros, el problema actual que tengo es que al gatillar el query
> > que me actualiza la vista materializada despues de la insercion de un
> > registro,  la aplicacion cliente queda tomada hasta que el servidor
> > termina de actualizar la vista,. Por eso busque informacion y encontre
> > que con libpq puedo tener querys  asincronicos, pero libpq no me sirve
> > ya que mi aplizacion en windows utiliza psqlodbc, es por eso que
> > disene una funcion en lenguaje C con SPI y al gatillar el query pero a
> > la funcion que se llama actualiza.so, es resultado es el mismo.
>
> Entiendo.  No, no puedes hacerlo con SPI, ni de ninguna otra forma en
> realidad, en esencia porque el "backend" no es multithread, y por lo
> tanto no puede quedar procesando la peticion de actualizacion y ademas
> seguir con el resto del procesamiento para el cliente.
>
> No desesperes eso si -- hay un mecanismo que me parece que es casi
> perfecto para lo que quieres; se trata de LISTEN/NOTIFY.  La idea seria
> que el proceso que haga el trabajo de regeneracion de la vista
> materializada sea independiente de los que atienden a los clientes.
> Esto proceso debe hacer un LISTEN, y los procesos que modifiquen las
> tablas involucradas deben invocar a NOTIFY en un trigger.  Entonces
> cuando se haga una modificacion, la notificacion despertara al proceso
> que reconstruye la vista, y este trabajara fuera de linea.
>
> Espero haberme explicado.  Ojala te sirva este mecanismo; realmente es
> muy sencillo.
>
> --
> Alvaro Herrera                        http://www.advogato.org/person/alvherre
> www.google.com: interfaz de línea de comando para la web.
>


--
cordialmente,

Ing. Mario Soto Cordones

In response to

pgsql-es-ayuda by date

Next:From: Dimas AyalaDate: 2005-09-23 20:58:35
Subject: foreing Key
Previous:From: Alvaro HerreraDate: 2005-09-23 20:26:32
Subject: Re: Ayuda con la conexion - Urgente

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group