Re: Bloqueo en registro-tabla

From: Juan Jose Rosales Rodriguez <jjrosales(at)estudiantes(dot)uci(dot)cu>
To: Mariano Reingart <mariano(at)nsis(dot)com(dot)ar>
Cc: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>, suso <jlcubas(at)terra(dot)es>, pgsql-es-ayuda(at)postgresql(dot)org, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Re: Bloqueo en registro-tabla
Date: 2009-06-16 20:06:22
Message-ID: 1409067909.325431245182782615.JavaMail.root@ucimail4.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

gyhtg

Juan Jose Rosales Rodriguez
ERP-CUBA 2009.

----- Mensaje original -----
De: "Mariano Reingart" <mariano(at)nsis(dot)com(dot)ar>
Para: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
CC: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>, "suso" <jlcubas(at)terra(dot)es>, pgsql-es-ayuda(at)postgresql(dot)org
Enviados: Martes, 16 de Junio 2009 16:02:37 GMT -05:00 Región oriental EE. UU./Canadá
Asunto: Re: [pgsql-es-ayuda] Bloqueo en registro-tabla

Alvaro:
> Mariano Reingart escribió:
>
>> Para solucionar el tema si el médico se va y no desbloquea, se podría
>> implementar algun mecanismo de señales con LISTEN y NOTIFY para detectar
>> si el bloqueo sigue vigente o no.
>
> Hmm, ¿quién haría listen y quién notify? ¿Qué identificador se usaría?

Se me ocurre que una forma es que el que necesita acceso (y esta
bloqueado) podría hacer un NOTIFY sobre la misma tabla, y el LISTEN lo
haría el que esta bloqueando.
De esta forma los que tengan bloqueos, los podrían revalidar (cambiar la
fecha o algún otro dato del registro en cuestión).
Si no los revalidan en x segundos listo, se consideraría que la máquina se
apago o la conexión se interrumpió.
Igualmente al escuchar en el NOTIFY, tendría que preguntarle al usuario si
renovar el bloque o permitir que el otro usuario modifique el registro,
porque si te dejaron la maquina encendida y el proceso es automático,
estaríamos en la misma (va a renovar el bloqueo cuando el usuario no
esta).

De todas maneras, al seguir siendo un bloqueo lógico, a mi me parece que
también se debe verificar la versión de la fila con xmin, para evitar
sobreescribir los datos que pudo haber escrito otro usuario, por el motivo
que fuese.

Igualmente todo esto es una suposición, habría que probarlo bien.

Sds
Mariano

>
> --
> Alvaro Herrera
> http://www.flickr.com/photos/alvherre/
> "Hackers share the surgeon's secret pleasure in poking about in gross
> innards,
> the teenager's secret pleasure in popping zits." (Paul
> Graham)
> --
> TIP 8: explain analyze es tu amigo
>

--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro D. Burne 2009-06-16 20:11:53 Re: AYUDA CON JOBS
Previous Message Mariano Reingart 2009-06-16 20:02:37 Re: Bloqueo en registro-tabla