Re: Bloqueo en registro-tabla

From: suso <jlcubas(at)terra(dot)es>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Bloqueo en registro-tabla
Date: 2009-06-13 11:16:36
Message-ID: 4A338A94.80109@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Jaime
> 2009/6/12 suso <jlcubas(at)terra(dot)es>:
>> Hay alguna manera de poner un temporizador o algo parecido para lo
>> siguiente:
>> Bloqueo(para que solo pueda leer otro cliente) desde mi aplicación un
>> registro, mediante un valor en un campo, cierro la conexión, trabajo
>> desconectado con ese registro, cuando termino, lo abro otra vez, hago los
>> cambios, y desbloqueo ese registro,
> puedes usar advisory locks
> (http://www.postgresql.org/docs/8.3/static/explicit-locking.html#ADVISORY-LOCKS),
> ojo que nunca he usado eso y no me parece logica toda la complicacion
> que quieres hacer
>
Quizás me esté complicando la vida
> aunque parece que se desbloquea una vez que cierras la sesion
>
>> todo
>> para notener la conexion abierta y así disminuir el tráfico de red,
>
> ah? trafico de red solo habra cuando estes pasando informacion entre
> el cliente y el servidor, si abres la conexion y no haces ninguna
> consulta al servidor luego de eso no tiene por que haber mayor trafico
> de red.
>
> ademas no es muy buena idea estar abriendo y cerrando conexiones
> porque eso tiene un costo en tiempo en postgres, de hecho lo ideal es
> que tengas un pool de conexiones y que dejes que el se encargue de los
> detalles
>
en mi caso, pueden ser como 20 usuarios, pero en principio sólo 1 a las
mismas tablas(pero cualquiera sabe), como como 30 tablas, no todas
abiertas a la vez, y deberían estar bloqueadas como 90' aprox., pero
todas de esas 30, pero si la mayoría, si no puedo hacer lo del timer, no
sé si eso será mucha carga para postgres, ya que según me comentas, no
lo es para la red.
>> supongamos que en esos segundos/minutos, se va la luz, o se le bloquea al
>> cliente el pc, etc., como puedo hacer que desde el servidor, en caso de esos
>> temas, y pasado "x" minutos, se desbloquee ese registro -tabla, pero
>> solamente de ese cliente y ese registro-tabla.
>> Eso debería dispararse para cada cliente y por cada registro que modificase
>> ese cliente, y pararlo o pararse cuando cambia de valor ese campo, o sea,
>> despues de un update.
>
> es decir que quieres encontrar la solucion a un problema que no tienes
> aun pero que quieres implementar?

Si, así es
> creeme la solucion es peor que la enfermedad en este caso... conozco
> un ERP que tenia algo como lo que describes (bloqueo de aplicacion se
> llamaba, por si eso te da una idea de donde esta la solucion)...
> pasa la mayor parte del tiempo eliminando bloqueos que se habian
> quedado de otros dias, o por que se colgaba la maquina, etc, etc...
>
> los bloqueos en las tablas no deberian demorar demasiado asi (de hecho
> tu incluso dices solo unos segundos) asi que estas complicando
> exageradamente las cosas para no obtener ningun beneficio perceptible
>
hay tablas que sólo serían unos segundos( 1' coom mucho), pero otars que
pueden estar abiertas como 90', revision del pacientes
>> Me imagino que con un trigger y algun tipo de funcion, pero por mas que miro
>> en la ayuda, no encuentro nada referente a eso.
>
> y que pasa si se te cuelga la maquina? y no pudiste desbloquear? y
> creeme la idea del temporizador no te va a servir de nada porque no
> puedes realmente determinar de antemano cuanto va a demorar un
> proceso... que pasa si el usuario esta ingresando los datos (claro la
> maquina se desconecto y dejo bloqueado) luego de media hora (ya el
> temporizador desbloqueo y alguien mas empezo a modificar) graba los
> cambios y modifica otro cambio que alguien mas hizo... te imaginas el
> desastre que se va a causar?
>
entonces, que me aconsejas?
Gracias
Un slaudo
Suso

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sergio Gabriel Rodriguez 2009-06-13 14:01:02 Re: [OT] evento desde un checkbox
Previous Message suso 2009-06-13 11:06:59 Re: Bloqueo en registro-tabla