Arrivé-avant
En informatique, la relation arrivé-avant (anglais happened-before), notée , est un ordre partiel (relation binaire irréflexive, antisymétrique et transitive) sur les événements basé sur la causalité de deux événements dans un système distribué asynchrone. Elle est introduite par Leslie Lamport en 1978[1].
La relation arrivé-avant est définie ainsi:
- Si les événements et surviennent dans le même processus, si l'occurrence de précède l'occurrence de .
- Si l’événement est l'émission d'un message et l’événement est la réception de ce même message, alors .
- Transitivité: soient trois événements , , et , si et , alors .
Deux événements et tels que , et sont dits indépendants.
Cette notion de temps logique est fondamentale dans les systèmes distribués asynchrones car, contrairement aux systèmes synchrones, ils ne disposent pas d'une horloge centrale. La relation arrivé-avant permet de donner aux événements du système une structure de treillis.
Les processus d'un système peuvent obtenir des informations sur cette relation en utilisant des horloges de différents types :
- horloge logique (ou horloge de Lamport) ;
- horloge vectorielle ;
- horloge matricielle.
De nombreux algorithmes reposent sur ces horloges. Leurs principales applications sont l'exclusion mutuelle, le débogage et l'optimisation de systèmes distribués et la tolérance aux défaillances.
Notes et références
- (en) Leslie Lamport, « Time, Clocks, and the Ordering of Events in a Distributed System », Communications of the ACM, vol. 21, no 7,‎