Transactions et verrouillage Transaction

PostgreSQL étant un serveur de bases de données, il accepte des connexions depuis des clients. Un des aspects les plus importants du fonctionnement d’une instance PostgreSQL est de permettre à tous les clients connectés de lancer les requêtes simultanément : on parle alors de concurrence d’accès aux données.

PostgreSQL implémente les quatre caractéristiques normalisées des systèmes de bases de données relationnelles, connues sous l’acronyme ACID :

  • Atomicité : une transaction forme un ensemble atomique. L’ensemble de la transaction est validé, ou pas du tout.

  • Cohérence : une transaction ne peut pas rendre la base de données incohérente.

  • Isolation : une transaction ne voit pas les autres transactions en cours.

  • Durabilité : les données validées le sont durablement.

Afin d’implémenter ces caractéristiques, PostgreSQL utilise le concept MVCC : Multi Version Concurrency Control : contrôle de la concurrence basée sur de multiples versions des enregistrements.

En résumé, chaque modification d’un enregistrement introduit une nouvelle version de l’enregistrement, évitant ainsi de verrouiller complètement la ligne, et donc permettant aux sessions concurrentes de continuer à utiliser l’enregistrement original.

Pour cela, toutes les requêtes utilisent des identifiants pour...

Pour consulter la suite, découvrez le livre suivant :
couv_RIPOST.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Langage de requêtage des données
Suivant
Fonctions et procédures