Re: Dificil situacion con Lokcs...

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: "Carlos T(dot) Groero Carmona" <ctonetg(at)gmail(dot)com>
Cc: Daymel Bonne <daymel(dot)bonne(at)2ndquadrant(dot)ec>, Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Dificil situacion con Lokcs...
Date: 2019-01-06 04:16:42
Message-ID: 201901060416.trdpfxvyopug@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Carlos T. Groero Carmona escribió:
> Daymel, gracias por su comentario.
>
> He estado manejando hipotesis donde el update se bloquea porque se queda
> esperando una validacion (otro query o trigger), se demora mas de 5
> segundos, el lock_timeout le dice a postgres que elimine esa transaction,
> la transaction se queda abierta, el script intenta ejecutar nuevos updates
> sobre las mismas filas,

No, esta hipótesis no es correcta, porque cuando una transacción es
abortada debido al lock_timeout, todos los locks que tiene son liberados
y ningún intento futuro para ejecutar cualquier cosa que no sea un
ROLLBACK tendrá ningún efecto. Únicamente te verías en un problema si
pusieras esto en un loop en plpgsql con un bloque EXCEPTION, o alguna
otra cosa similarmente absurda.

(Las transacciones no se "eliminan". Más bien se "abortan", quedando en
un estado en el cual no pueden continuar operando.)

> y como explico Daymel, esos procesos pasan a ser locks por transaiones

Esta última frase no tiene sentido.

> y como en mi configuracion tengo solo 128

Esta tampoco.

> postgres cae por el alto consumo de recursos de estas y otras
> operaciones.

Esta tampoco.

Creo que has diagnosticado mal el problema, aunque no me atrevo a
sugerir cuál podría ser un diagnóstico correcto.

> 1- Aumentar el shared_buffer a 64 GB como teniamos planificado y asi
> postgres tiene mas recursos para trabajar

Dudo que ayude.

> 2- Aumentar 10 veces como me recomendo alvaro el numero de locks por
> transaciones

Mismo.

> 3- Desabilitar el lock_timeout.

Esto podría cambiar el comportamiento, pero no creo que solucione en
problema de fondo.

> 4- disminuir el tiempo de log_duration o ponerlo en cero hasta que sel
> bloqueo suceda nuevamente y me permita tracear todas las transaciones
> realizadas en un tiempo sercano al primer lock en la tabla.

No entiendo esta idea.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eduardo Morras 2019-01-06 12:45:27 Re: Dificil situacion con Lokcs...
Previous Message Carlos T. Groero Carmona 2019-01-06 00:40:41 Re: Dificil situacion con Lokcs...