Niveaux d'isolation

Transactions et gestion des erreurs dans PostgreSQL

Jason Myers

Instructor

Concurrence

  • Coordonner plusieurs opérations en parallèle.
  • Pose des problèmes spécifiques en base de données.
  • Utilise des règles, appelées niveaux d'isolation, pour raisonner plus facilement sur les résultats.
Transactions et gestion des erreurs dans PostgreSQL

Lectures sales

Lecture sale

Transactions et gestion des erreurs dans PostgreSQL

Lecture non reproductible

Lecture non reproductible

Transactions et gestion des erreurs dans PostgreSQL

Lecture fantôme

Lecture fantôme

Transactions et gestion des erreurs dans PostgreSQL

Anomalie de sérialisation

Anomalie de sérialisation

Transactions et gestion des erreurs dans PostgreSQL

Niveaux d'isolation

Niveau d'isolation Lecture sale Lecture non reproductible Lecture fantôme Anomalie de sérialisation
Read Uncommitted Protégé (PostgreSQL) vulnérable vulnérable vulnérable
Read Committed Protégé vulnérable vulnérable vulnérable
Repeatable Read Protégé Protégé Protégé (PostgreSQL) vulnérable
Serializable Protégé Protégé Protégé Protégé
Transactions et gestion des erreurs dans PostgreSQL

Effets des niveaux d'isolation

START TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Résultats des instructions

  • Résultat du premier SELECT : 5
  • Résultat du second SELECT : 6
Transactions et gestion des erreurs dans PostgreSQL

Effets des niveaux d'isolation

START TRANSACTION ISOLATION LEVEL SERIALIZABLE; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Résultats des instructions

  • Résultat du premier SELECT : 5
  • Résultat du second SELECT : 5
Transactions et gestion des erreurs dans PostgreSQL

Passons à la pratique !

Transactions et gestion des erreurs dans PostgreSQL

Preparing Video For Download...