Sous-sections
Mots clés : algorithme réparti,
causalité, points de contrÔle, cohérence, tolérance aux
défaillances .
Résumé :
Déterminer des points de contrÔle globaux cohérents est
une tâche importante qui trouve des applications tant dans
le domaine de la tolérance aux défaillances (points de
reprise à partir desquels un calcul peut être relancé après
défaillance) que dans la détection de propriétés des
exécutions réparties (coupes cohérentes). De telles
déterminations sont non triviales dans le cadre des
systèmes répartis asynchrones. La théorie des Z-chemins de
Netzer et Xu énonce qu'un tel chemin entre deux points de
contrÔle locaux révèle une dépendance qui leur interdit
d'appartenir à un même point de contrÔle global
cohérent.
Lors de l'exécution répartie d'une application, un point
de contrÔle global est un ensemble de points de contrÔle
locaux (états locaux), un par processus participant à
l'exécution. La détermination d'un point de contrÔle global
cohérent est un problème important dans de nombreux domaines
concernés par les applications réparties (résistance aux
défaillances, mise au point répartie, détection de
propriétés, etc.). De nombreux protocoles ont été proposés
pour déterminer des points de contrÔle locaux afin qu'ils
forment des points de contrÔle globaux cohérents [BHMR95,EJW96]. Si les points de contrÔle
locaux sont sélectionnés de manière non coordonnée, il est
possible que ceux-ci ne puissent former aucun point de
contrÔle global cohérent (ce risque est connu sous le nom d'
effet domino [Ran75]). Une forme de coordination est donc
nécessaire si l'on veut éviter - ou diminuer - cet effet. Les
techniques de calcul d'état global cohérent introduites par
Chandy-Lamport [CL85] sont basées sur une coordination
explicite utilisant des messages de contrÔle supplémentaires.
En général, cette forme de coordination impose à tous les
processus de prendre des points de contrÔle locaux lorsque
l'un d'entre eux décide d'en prendre un, même en l'absence de
communication due à l'exécution répartie. Une autre forme de
coordination, implicite, utilise des informations de contrÔle
véhiculées par les messages de l'application (technique de
piggybacking). Pour cette raison, elle est connue
sous le nom de coordination induite par les
communications (communication-induced checkpointing).
Dans cette approche, des points de contrÔle locaux sont
sélectionnés de manière non coordonnée (points de contrÔle
de base) et le protocole impose des points de
contrÔle locaux supplémentaires, appelés points de
contrÔle forcés, de manière à assurer la progression des
points de contrÔle globaux cohérents. Les points de contrÔle
forcés sont pris sur la base des informations de contrÔle
véhiculées par les messages de l'application. C'est cette
approche qui a été principalement étudiée dans notre équipe
depuis l'année 1995, bien que nous ayons abordé récemment
l'approche non coordonnée.
Le fait que deux points de
contrÔle locaux ne soient pas liés causalement constitue une
condition nécessaire pour appartenir à un même point de
contrÔle global cohérent. Malheureusement, cette condition
n'est pas suffisante. Les points de contrÔle locaux peuvent
avoir des dépendances cachées (c'est-à-dire non captables par
un mécanisme d'estampillage) qui les empêchent de participer
au même point de contrÔle global cohérent. Afin de capter
l'ensemble des dépendances liant les points de contrÔle
locaux, Netzer et Xu [NX95] ont introduit la notion de
Z-chemin entre points de contrÔle locaux. Ils ont de
plus démontré le théorème fondamental suivant : un
ensemble quelconque de points de contrÔle locaux peut être
étendu pour former un point de contrÔle global cohérent si,
et seulement si, il n'y a pas de Z-chemin connectant deux
points de contrÔle de cet ensemble. Si, dans une
exécution répartie, on ne considère que les points de
contrÔle locaux et leurs relations de dépendance, on obtient
une abstraction de cette exécution répartie (cette
abstraction ignore tous les états locaux qui ne sont pas des
points de contrÔle locaux). Une question importante est
alors : ``cette abstraction est-elle cohérente ?''
Cette question peut être abordée dans deux contextes
différents, selon la notion de cohérence particulière
considérée pour l'abstraction définie par les points de
contrÔle.
Dans le premier cas, l'abstraction est cohérente si tout
point de contrÔle local appartient à au moins un point de
contrÔle global cohérent. En d'autres termes, il n'y a pas de
point de contrÔle local qui s'avère inutile du point de vue
de la construction des points de contrÔle globaux cohérents
(du point de vue opérationnel ceci élimine l'effet domino
lors de la construction des points de contrÔle globaux).
Netzer et Xu ont montré, au niveau de l'abstraction, qu'il
n'y a pas de point de contrÔle inutile si, et seulement si,
aucun Z-chemin n'est un cycle (Z-cycle). Il s'agit alors de
traduire cette propriété au niveau opérationnel et d'en
déduire des protocoles efficaces, notamment dans le cadre de
l'approche coordination induite par les
communications (conception et analyse de protocoles de
détermination de points de contrÔle forcés prévenant
l'occurrence de points de contrÔle inutiles).
Une seconde notion de cohérence pour l'abstraction que
constitue un ensemble de points de contrÔle locaux réside
dans l'absence de relations de dépendance cachées entre ces
points de contrÔle locaux. Cette notion de cohérence, plus
forte que la précédente, a été proposée par Wang [Wan97].
Appelée propriété RDT (pour Rollback-Dependency
Trackability), elle se révèle particulièrement utile pour
résoudre des problèmes tels que le calcul au vol du point de
contrÔle global minimal cohérent auquel appartient un
point de contrÔle local donné (Dans [Wan97]
d'autres exemples de problèmes dont la solution est facilitée
lorsque les points de contrÔle définis lors d'une exécution
satisfont la propriété RDT. A titre d'exemples, les points de
contrÔle globaux cohérents minimaux facilitent la recherche
d'erreurs logicielles et la relance des exécutions après la
détection d'un interblocage). Dans le cadre de l'approche
coordination induite par les communications, nous
nous sommes intéressés à la recherche de conditions optimales
sous lesquelles un processus sera obligé de prendre un point
de contrÔle forcé. Par là nous entendons la recherche de
conditions telles que le nombre de points de contrÔle forcés
serait le plus faible possible. Dans une approche
``théorique'', il s'agit de définir un ensemble de Z-chemins
dont la suppression (par prise de points de contrÔles locaux)
suffit à assurer la propriété RDT. Trivialement, cette
propriété est assurée si tous les Z-chemins sont
ainsi supprimés. Mais cette solution peut s'avérer coûteuse
en termes du nombre de points de contrÔle forcés qu'elle
induit. C'est pourquoi la recherche d'ensembles
minimaux de Z-chemins est un problème de toute
première importance. Sur le plan ``pratique'', il s'agit de
concevoir des protocoles ``génériques'' qui offrent à
l'utilisateur des compromis entre taille des informations de
contrÔle véhiculées par les messages et nombre de points de
contrÔle forcés.
Un examen approfondi des notions de
cohérence d'états globaux (ou de points de contrÔle globaux)
fait apparaître que la notion usuelle, basée sur la
causalité, ne représente qu'un aspect du problème. C'est
pourquoi d'autres modèles de cohérence doivent être
envisagés. Deux modèles, en particulier, présentent un grand
intérêt pratique. Ce sont, respectivement, l'absence de
messages en transit (transitlessness), duale de la
notion classique, et la cohérence forte, réunion de
la cohérence classique et de l'absence de messages en
transit. La cohérence classique considère des points de
contrÔle globaux dans lesquels tout message est enregistré
comme reÇu seulement s'il y est enregistré comme
émis. La cohérence transitless considère
des points de contrÔle globaux dans lesquels tout message
doit être enregistré comme reÇu s'il y est
enregistré comme émis. La cohérence forte considère
des points de contrÔle globaux dans lesquels tout message est
enregistré comme reÇu si, et seulement si, il y est
enregistré comme émis. Le problème consiste alors à
définir des formalismes permettant d'étendre à ces modèles de
cohérence la condition nécessaire et suffisante pour qu'un
ensemble de points de contrÔle locaux puisse faire partie
d'un point de contrÔle global cohérent. Cette étude théorique
sert de fondement à la conception de protocoles assurant la
cohérence forte en combinant les deux techniques de points de
contrÔle forcés et de sauvegarde des messages (recording),
ainsi qu'à l'étude des compromis entre ces deux techniques.