From: | SOUCHARD Jean-Michel DSIC BI <jean-michel(dot)souchard(at)interieur(dot)gouv(dot)fr> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Cc: | MOREAU Michel-Patrice DSIC SDEL <michel-patrice(dot)moreau(at)interieur(dot)gouv(dot)fr>, ROELTGEN Pierre-Andre DSIC DESP <pierre-andre(dot)roeltgen(at)interieur(dot)gouv(dot)fr>, REISS Thomas DSIC DESP <thomas(dot)reiss(at)interieur(dot)gouv(dot)fr> |
Subject: | [pgsql-fr-generale] Problème de lock positionné sur un COPY |
Date: | 2006-09-19 12:31:25 |
Message-ID: | FC9AD8D97DEC994DBAEC2F3B4DFA35C80560D78A@msg01nel.exac.ctiac.dsic.mi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Bonjour à tous,
On me demande d'examiner un problème de blocage d'application écrite en PHP
par une société de service (je n'ai pas encore de visibilité sur le code).
Dans le code PHP, la mise à jour des tables de la base se fait par DELETE
... puis des recalculs importants et la base est chargée par COPY à partir
de l'entrée standard. Le problème c'est que plusieurs utilisateurs peuvent
en même temps lancer cette fonctionnalité. Ce qui entraîne un blocage de
l'application et retourne l'erreur suivante :
[WARNING] pg_end_copy(): Query failed: ERREUR: Bloquage détecté DETAIL:
Le processus 12671 attend ShareLock sur la transaction 1664756; bloqué
par le processus 12676. Le processus 12676 attend ShareLock sur la
transaction 1664757; bloqué par le processus 12671. CONTEXT: instruction
SQL «SELECT 1 FROM ONLY "public"."ref_paragraphe" x WHERE
"paragraphe_id" = $1 FOR UPDATE OF x»
/MBGP/site/bgp2_2006/bgp2/classes/agent.class.php 706
[WARNING] Cannot modify header information - headers already sent
/MBGP/site/bgp2_2006/copix/utils/copix/core/CopixCoordination.class.php
215
Avant de trouver d'autres solutions, notamment modifications de code ou
organisationnelles, je désirais savoir si il y a un paramétrage spécial
évitant de planter en bloquage quand on lance plusieurs COPY en même temps
sur la même table (il s'agit de lignes différentes dans les tables). Un
traitement peut impacter jusqu'à 400*30000 lignes (12 millions de lignes),
raison, je pense, de l'utilisation de DELETE/COPY plutôt que DELETE/INSERT
ou UPDATE simple.
D'avance, merci
JM Souchard
From | Date | Subject | |
---|---|---|---|
Next Message | Daniel Verite | 2006-09-19 14:10:25 | Re: Problème de lock |
Previous Message | Christophe Truffier | 2006-09-18 21:10:04 | Re: Insertion d'image dans une table. |