PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 16/04/2019 16:28:15

pitpoule
Membre

Lock et héritage de table

Bonjour,


Je dois rajouter une colonne sur un table mère (en PG 9.6) possédant un grand nombre de tables filles, qui sont de plus assez sollicitées. La colonne à ajouter est basique, pas de valeur par défaut ni de not null.

Pour ajouter une colonne il faut avoir un lock exclusif sur la table mère et ses filles mais je ne sais pas bien comment cela va se passer...
Est ce que PG va attendre que toutes les tables filles soient "verrouillables" en même temps pour faire la mise à jour ou bien va t'il les verrouiller au fur et à mesure que cela est possible ?

Mon inquiétude est qu'avec les sollicitations que nous avons sur les tables filles, la colonne ne puisse jamais être ajouter, faute de pouvoir avoir un lock exclusif sur toutes les tables en même temps


Merci

Hors ligne

#2 16/04/2019 18:02:32

rjuju
Administrateur

Re : Lock et héritage de table

Bonjour,


Postgres essaiera d'obtenir un verrou sur toutes les tables héritées en même temps.  Il devrait réussit à obtenir ce verrou étant donné qu'il n'en relachera aucun avant d'avoir terminé ou que la requête soit annulée.


Vous pouvez toujours tester en positionnant au préalable un lock_timeout à une valeur suffisamment faible pour que cela soit acceptable si effectivement l'acquisition de tous les verrous prenait trop de temps.

Hors ligne

#3 17/04/2019 09:15:46

pitpoule
Membre

Re : Lock et héritage de table

ok merci, je vais effectivement utiliser lock_timeout et croiser les doigts !

Hors ligne

Pied de page des forums