Aller au contenu
uencoder

Transaction

Une transaction est un groupe d'opérations exécutées comme une unité logique unique satisfaisant ACID — tout ou rien.

Objectif

Regrouper plusieurs opérations en une unité atomique, garantissant l'exactitude en cas de panne et de concurrence.

Mécanisme

BEGIN la démarre, les opérations s'exécutent, COMMIT valide ou ROLLBACK annule. L'atomicité est garantie par le journal d'annulation, la durabilité par le journal de redo/WAL, l'isolation par verrous ou MVCC. Les transactions distribuées utilisent 2PC/3PC ou le pattern Saga.

Cas d’usage

  • Virements bancaires
  • Commandes et décrément de stock
  • Mises à jour multitables relationnelles
  • Opérations distribuées entre services

Exemples

  • entrée
    BEGIN; A→B 100; COMMIT
    Output
    Atomic transfer

    All or nothing

Erreurs courantes

No explicit transaction causes partial commits
Wrap related operations in a transaction

Termes associés

References