Projet : ADP

previous up next contents
Précédent : Cohérence d'objets dupliqués Remonter : Fondements scientifiques Suivant : Contraintes non-fonctionnelles


Sous-sections


   
Points de contrôle et retour arrière

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é particulièrement étudiée dans notre équipe depuis l'année 1995, bien que nous ayons abordé récemment l'approche non coordonnée.

Études dans le cadre de la notion classique cohérence

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.

Extensions de la notion de cohérence

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 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 si 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 (logging), ainsi qu'à l'étude des compromis entre ces deux techniques.

Extension des modèles de calcul

Les problèmes de cohérence de points de contrôle ont presque toujours été posés et étudiés dans le cadre du modèle de calcul réparti asynchrone basé exclusivement sur l'échange de messages. Ce cadre peut être élargi en considérant un modèle générique de calcul réparti asynchrone, basé sur une relation de causalité générale. Ce modèle recouvre aussi bien le modèle à mémoire partagée, que différents modèles à échange de messages tels que le modèle fiable point-à-point, le modèle non fiable ou encore le modèle à diffusion (multicast). Il s'agit alors de donner une définition générique de la cohérence, puis de répondre à la question fondamentale: exprimer une 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.



previous up next contents
Précédent : Cohérence d'objets dupliqués Remonter : Fondements scientifiques Suivant : Contraintes non-fonctionnelles