From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | "Cristofer N(dot) Reyes A(dot)" <crreyes(at)alumnos(dot)inf(dot)utfsm(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Bloquear registros |
Date: | 2005-08-12 22:50:51 |
Message-ID: | 20050812225051.GL16953@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Fri, Aug 12, 2005 at 06:04:34PM -0400, Cristofer N. Reyes A. wrote:
> On Fri, Aug 12, 2005 at 05:20:49PM -0400, Alvaro Herrera wrote:
> >
> > No -- un registro bloqueado queda bloqueado hasta el fin de la
> > transaccion. Si haces un UPDATE, se crea un nuevo registro y el antiguo
> > se marca como eliminado (esto es MVCC), pero el nuevo registro es
> > invisible a transacciones concurrentes, mientras que el antiguo sigue
> > siendo visible pero bloqueado.
>
> Y una transaccion (otro select) puede saber que el registro que esta accediendo
> esta bloqueado por el momento?
Lamentablemente no.
(Si _realmente_ tienes muchos deseos de saberlo, puedes examinar el Xmax
del registro y verificar si hay un lock con ese transactionid en
pg_locks. Si hay, esta bloqueado. Si no hay, la ultima transaccion que
lo bloqueo ya termino. Nada te garantiza que no llegue otra transaccion
y lo bloquee, en el intervalo entre que lo verifiques y que intentes
bloquearlo ...)
Yo creo que el problema al que te enfrentas se resuelve de otro modo.
Mira si te sirve usar "userlocks" (por ej. contrib/pg_userlock).
> tengo miedo de que se produzca un deadlock :-S
El sistema te avisa en caso de suceder y aborta una de las
transacciones -- no se va a quedar pegado eternamente.
--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"The Postgresql hackers have what I call a "NASA space shot" mentality.
Quite refreshing in a world of "weekend drag racer" developers."
(Scott Marlowe)
From | Date | Subject | |
---|---|---|---|
Next Message | Pascual De Ruvo | 2005-08-12 23:47:00 | Re: A toda la "Comunidad en Español de PostgreSQL" |
Previous Message | Martin Marques | 2005-08-12 22:31:32 | Re: Monitoreo gráfico de postgresql |