Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 20 June 2022 22:36

EliseWi
Participant occasionnel
Date d'inscription: 16 May 2022
Messages: 16

Gerer les modifications simultanees Postgresql/Postgis

Bonjour à tous,

Je travaille actuellement sur une base de données Postgres (en utilisant PgAmin 4). Je m'interroge sur la gestion des connexions simultanées et les modifications d'une même entité par différents utilisateurs en même temps. Je me suis informée sur les différentes solutions tels que les verrous et l'isolation des transactions, ainsi que la solution directe dans les paramètres de Qgis présentée dans ce post https://georezo.net/forum/viewtopic.php?id=126396 (les personnes utilisant la base le faisant principalement directement sur Qgis).  Je ne suis pas vraiment sure d'avoir bien compris les principes de verrous et transactions.

Y-a-t'il un moyen de généraliser par exemple le fait que tous les updates soient sérialisables dans une base de données? De ce que j'ai compris, il faut indiquer dans la transaction directement qu'elle est sérialisable. Y a-t'il un moyen de dire que si 2 utilisateurs lancent chacun un update à quelques secondes de suite, alors il faut que le premier update soit finit pour que le deuxième se lance ? Sans qu'ils aient besoin de le spécifier dans une transaction.

Merci d'avance pour vos réponses et n'hésitez pas à me dire si je n'ai pas été claire smile

Bonne journée !

Hors ligne

 

#2 Sun 10 July 2022 11:56

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gerer les modifications simultanees Postgresql/Postgis

Bonjour,
La question est claire!

Y-a-t'il un moyen de généraliser par exemple le fait que tous les updates soient sérialisables dans une base de données? De ce que j'ai compris, il faut indiquer dans la transaction directement qu'elle est sérialisable. Y a-t'il un moyen de dire que si 2 utilisateurs lancent chacun un update à quelques secondes de suite, alors il faut que le premier update soit finit pour que le deuxième se lance ? Sans qu'ils aient besoin de le spécifier dans une transaction.


C'est normalement le fonctionnement par défaut.
Si A lance un update, B doit attendre la fin de la transaction pour que son update démarre.
Des problèmes peuvent survenir si A et B modifient les mêmes entités et les mêmes atttributs (les entités modifiées sont dans le "cache" de qgis de B), dans ce cas ce serait B qui écrase les modifications de A, uniquement sur les entités modifiées par A et B.
Celles modifiées uniquement par A et celles modifiées uniquement par B sont inscrites en base comme A ou B le souhaite.
Relisez bien ce dernier post qui indique un comportement qui répondra peut-être à vos besoins.


Par ailleurs, si votre volume de données modifiées est faible, que vos données ne sont pas spécialement sensible et que votre nombre d'utilisateur est relativement faible. Je pense que vous pouvez vous contenter du fonctionnemment par défaut de qqgis/postgres.
La probabilité que 2 utilisateurs modifient en même temps (à la fraction de seconde près) la même entité étant très faible.
C'est peut-être une non-solution intellectuellement non satisfaisante, mais ça peut-être un gain de temps réel (pas de paramétrage à faire) face un risque très faible!

Pour information avec peu d'utilisateurs (5) et un petit volume de données (160 000 environ, mais rarement + de 100 modifiées en même temps) je n'ai jamais eu à ma poser cette question! wink

Je laisse les vrais pros vous répondre si besoin de mettre en place un système plus "rigoureux".
Et dans tous les cas, je vous conseille de tester le comportement par défaut pour voir s'il vous convient!


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#3 Tue 12 July 2022 10:24

EliseWi
Participant occasionnel
Date d'inscription: 16 May 2022
Messages: 16

Re: Gerer les modifications simultanees Postgresql/Postgis

Bonjour,

Merci beaucoup pour votre réponse super claire et complète ! Qgis continue à me surprendre !

Hors ligne

 

Pied de page des forums

Powered by FluxBB