Résumé
- Le participant n’envoie oui qu’après avoir conservé de quoi refaire ou défaire son travail ; il renonce ainsi à décider seul, sans encore connaître l’issue globale.
- Le verdict durable du coordinateur est un fait distinct. Tant qu’il reste introuvable, attendre protège mieux l’atomicité que transformer une incertitude en réponse locale.
- Le commit porte sur les gestionnaires de ressources enrôlés. Il ne certifie ni l’envoi unique d’un message, ni l’exécution d’une tâche humaine, ni l’action irréversible d’un appareil extérieur.
Après un redémarrage, un serveur retrouve un enregistrement prepare forcé dans son journal. Son calcul local avait réussi et il se souvient d’avoir répondu oui. Il ne possède pourtant aucune trace du verdict. Cette situation n’est pas un succès presque achevé : c’est l’état préparé, donc indéterminé.
Les textes de Jim Gray sur les transactions donnent à cette nuance toute sa portée. Préparer signifie rendre les deux suites possibles et promettre d’accepter celle qui sera décidée. Cela ne transfère pas au participant le pouvoir de choisir.
Une promesse enregistrée, pas un verdict
Dans ses Notes on Data Base Operating Systems de 1978, Gray décrit un coordinateur demandant aux participants d’atteindre un état depuis lequel chacun pourra refaire ou annuler sa part. Avant de répondre AGREE, le participant doit placer ses informations UNDO et REDO dans un stockage sûr. Le vote atteste cette capacité durable.
Avant le oui, il peut encore refuser. Après, il doit conserver les journaux, verrous ou versions nécessaires pour appliquer commit comme abort. Son autonomie diminue au moment même où sa promesse devient fiable. Voilà pourquoi « préparé » n’est pas une teinte plus pâle de « validé » : c’est une obligation conditionnelle.
C. Mohan, Bruce Lindsay et Ron Obermarck formulent la même frontière dans leur article sur R*. Le subordonné force l’écriture du journal de préparation, envoie YES, entre dans l’état préparé et ne peut plus valider ou abandonner de sa propre initiative.
La décision durable appartient au coordinateur
Le coordinateur rassemble les votes. Si tous les participants requis acceptent, il force ensuite son propre enregistrement de commit avant d’annoncer la décision. Dans R*, cette écriture est le point de commit. Le oui d’un participant précède donc nécessairement le fait qu’il devra exécuter.
Cette séparation évite que plusieurs réussites locales deviennent plusieurs vérités incompatibles. Si l’un assimilait son vote au commit tandis qu’un autre échoue avant de se préparer, le premier pourrait rendre visibles des effets que le second doit annuler. La seconde phase donne à tous une issue commune et durable.
Même connaître les autres votes ne suffit pas à usurper ce rôle. L’information sur les intentions et l’autorité qui fixe le résultat sont deux propriétés différentes. Le participant doit retrouver une décision authentique, non calculer celle qui lui paraît probable.
La reprise restaure la connaissance du protocole
La règle de reprise exposée par Gray est volontairement stricte. Sans trace forcée d’accord, le participant peut abandonner : aucune promesse durable n’a été publiée. Avec cette trace, il demande le verdict au coordinateur ou à une autorité de reprise et exécute REDO ou UNDO en conséquence.
Un écran d’exploitation sérieux doit donc conserver quatre états distincts : travail en cours, préparé ou indéterminé, validé, abandonné. Afficher « réussi » dès que le travail local et le journal sont complets supprime précisément l’information dont dépend la sûreté.
Les éléments utiles sont l’identité du coordinateur, l’identifiant de transaction, l’emplacement du journal durable, les ressources retenues, l’heure de préparation et la dernière réponse autorisée connue. Rejouer l’opération métier ne résout pas l’inconnu ; cela peut seulement produire une deuxième opération.
Le blocage matérialise une limite de connaissance
Si le coordinateur tombe après le vote oui mais avant que le verdict soit reçu, le participant peut rester bloqué. Gray et Leslie Lamport prennent cette limite du 2PC classique comme point de départ de Consensus on Transaction Commit : un coordinateur unique suffit tant qu’il répond, mais sa panne peut interrompre la progression.
Le coût est réel. Les verrous demeurent, les capacités se raréfient et les opérations suivantes attendent. Mais cette attente énonce honnêtement deux absences : le participant ne connaît pas la décision et n’a pas mandat pour en créer une. Deviner commit privilégierait la disponibilité au prix d’une divergence possible ; deviner abort pourrait contredire un commit déjà inscrit ailleurs.
R* décrit des décisions heuristiques prises par un opérateur dans les cas extrêmes. Il en décrit aussi le risque : un choix forcé peut être différent de la décision globale et exiger une réconciliation. Une heuristique doit donc être visible comme une rupture contrôlée de la garantie, jamais présentée comme une conclusion ordinaire du protocole.
Le périmètre de la transaction n’englobe pas le monde
Dans « The Transaction Concept: Virtues and Limitations », Gray distingue les actions protégées des actions réelles. Le journal peut ramener une base à un état antérieur. Il ne reprend pas des espèces distribuées, un courriel reçu, une décision humaine ou un mouvement physique non enrôlé.
Ces effets demandent une stratégie propre : attendre le commit avant de les déclencher, attribuer une clé d’idempotence, inscrire une demande durable à livrer plus tard, ou prévoir une compensation. Une compensation est une nouvelle action métier ; ce n’est pas le voyage inverse parfait d’un rollback.
Une application peut ainsi être correctement validée alors que l’effet externe reste en attente ou échoue. L’inverse est également possible : l’appareil a agi, puis la transaction abandonne. Réutiliser le mot « commit » pour les deux plans masque le mécanisme d’impact au lieu de le sécuriser.
Une histoire collective
Gray offre une explication décisive, pas un récit d’inventeur solitaire. Sa note historique de 1978 cite les travaux de Ron Obermarck, Earl Jenner et Steve Weick et signale la découverte indépendante du 2PC par Butler Lampson et Howard Sturgis. Mohan, Lindsay et Obermarck signent l’analyse R* et ses optimisations. Andreas Reuter coécrit la grande synthèse ultérieure ; Leslie Lamport partage l’article sur Paxos Commit.
Respecter ces attributions renforce le propos. La leçon durable de Gray tient à une discipline intellectuelle : nommer séparément ce que le système a rendu possible, ce qu’il a promis, ce qu’une autorité a décidé et ce qui se trouve encore hors de portée.
Sources
- Jim Gray, « Notes on Data Base Operating Systems » (1978)
- Jim Gray, « The Transaction Concept: Virtues and Limitations » (1981)
- C. Mohan, Bruce Lindsay et Ron Obermarck, étude du système R*
- Jim Gray et Andreas Reuter, Transaction Processing: Concepts and Techniques
- Jim Gray et Leslie Lamport, « Consensus on Transaction Commit »
- Microsoft Open Specifications, les deux phases du commit
Briefing des membres
Contexte approfondi du profil
Connectez-vous avec le bon niveau d'adhésion pour débloquer le briefing complet et les notes de source.
Réservé à Strategic Circle
Strategic Circle
Ouvert à tous les lecteurs. Débloquez les briefings de profil après adhésion et connexion.
Rejoindre Strategic CircleRéservé aux membres de Leadership Alliance
Leadership Alliance
Réservé aux propriétaires et dirigeants qualifiés d'actifs IP ; connectez-vous pour débloquer les briefings Alliance.
Rejoindre Leadership Alliance
