• Aucun résultat trouvé

Replication de donnees et recuperation arriere

III.2 Recuperation arriere

III.2.2 Recuperation arriere et partage de donnees

Une technique de recuperation arriere est conceptuellement simple a mettre en uvre dans le cas d'une application sequentielle. Lorsque le systeme considere est constitue d'un ensemble de processeurs communicant par l'intermediaire d'une memoire partagee, il faut eviter que la restauration du point de recuperation d'un processeur1 n'introduise des inco-herences dans les executions eectuees sur les autres processeurs. En eet, suite aux com-munications, les etats des processeurs dependent les uns des autres. Cette inter-dependance entre les etats des processeurs est capturee par la notion

d'etat global coherent

Chandy

& Lamport 85].

III.2.2.1 Presentation du probleme

L'etat local d'un processeur peut ^etre deni par son etat initial suivi de la sequence des acces memoire qu'il a realises. Un etat global d'un systeme de processeurs communicants par une memoire est constitue de l'ensemble des etats locaux des processeurs. Lorsque les processeurs sont situes sur des sites dierents et que ces sites disposent de caches locaux, un etat global est dit coherent s'il verie la denition de la coherence donnee au chapitre precedent. Le but d'un mecanismede recuperation arriere est donc d'assurer que l'etat global du systeme reste coherent, malgre le retour arriere d'un ou de plusieurs processeurs. La gure III.2 decrit les deux situations pouvant introduire une incoherence de l'etat global en cas de retour arriere d'un processeur.

Un ensemble de points de recuperation actifs dont la restauration ramene le systeme dans un etat global coherent constitue une

ligne de recuperation

. L'objectif d'une technique de recuperation arriere est donc de calculer une ligne de recuperation permettant, en cas de

1Un point de recuperation d'un processeur est constitue de l'ensemble des points de recuperation des processus qui s'executent sur ce processeur.

Recuperation arriere 29

Le processeur Qlit une donnee prealablement modi ee par le processeur P. SiPeectue un retour arriere apres que Q ait lu la donnee alors l'etat global resultant n'est pas coherent carQa observe une ecriture qui n'existe pas.

Ce type d'incoherence est a rapprocher de celle de nie dans les systemes communicant par en-voi et reception de messages ou un etat est in-coherent si la reception d'une information fait partie de l'etat global alors que son emission n'en fait pas partie Chandy & Lamport 85].

Le processeur Qmodi e une donnee partagee precedemment modi ee par le processeur P. Qdevient donc le nouveau proprietaire de la donnee et la copie de P est aussit^ot invali-dee par le protocole de coherence. Si Q fait un retour arriere, la donnee de recuperation (ayant ici pour valeur 0) est restauree comme valeur courante de la donnee. Cet etat global est quali e d'incoherent puisqu'une lecture de la variable par le processeur P retournerait 0 et non pas 1 comme le speci e la coherence (respect de l'ordre du programme de chaque processeur).

Figure III.2 Interactions entre deux processeurs

defaillance, de ramener le systeme dans un etat global coherent. Pour cela, elle peut forcer certains processeurs a faire un retour arriere.

Il existe deux approches pour la sauvegarde de points de recuperation et le calcul d'une ligne de recuperation quand une erreur est detectee : les strategies

optimistes

, encore ap-pelees non planiees ou asynchrones, et les strategies

pessimistes

, aussi appelees planiees ou synchrones.

III.2.2.2 Strategies optimistes

Avec une strategie optimiste, les processeurs sauvegardent leurs points de recuperation independamment les uns des autres. Lorsqu'un retour arriere est necessaire, une ligne de recuperation doit ^etre calculee a partir des points de recuperation actifs des processeurs et de l'historique de leurs communications qui doit donc ^etre conserve. Cet enregistrement permet aussi de determiner les points de recuperation actifs et de valider ceux qui n'appartiennent pas a une ligne de recuperation.

L'avantage d'une telle approche est d'accelerer l'etablissement des points de recuperation puisque ce type d'operation ne concerne qu'un seul processeur. Elle presente cependant deux inconvenients. D'une part, la conservation des communications et de plusieurs points de recuperation par processeur, sur des supports ables, engendre un surco^ut non negligeable lie a la taille de ce support. D'autre part, une telle strategie peut sourir de l'

eet domino

30 Replication de donnees et recuperation arriere Randell 75] dans lequel on assiste a une cascade de retours arriere des processeurs pouvant eventuellement ramener le systeme dans son etat initial

Pour pallier ces deux inconvenients, certains systemes communicant par echange de mes-sages supposent des executions deterministes et utilisent les mesmes-sages conserves pour limi-ter le retour arriere seulement aux processeurs en defaillance Wood 85, Strom & Yemini 85, Goldberg et al. 90]. Dans le cas d'une memoire partagee cette solution necessite l'en-registrement de tous les acces en lecture realises a distance par un processeur Richard-III

& Singhal 93]. Au vue des frequences des lectures en memoire partagee, le co^ut de ces sau-vegardes devient rapidement problematique et une telle solution semble donc dicilement envisageable.

III.2.2.3 Strategies pessimistes

A la dierence d'une strategie optimiste, une strategie pessimiste coordonne l'etablis-sement des points de recuperation des processeurs an d'assurer que l'ensemble des points de recuperation des processeurs forme toujours un etat global coherent. De ce fait, seul le dernier point de recuperation d'un processeur doit ^etre conserve, l'eet domino est inhibe et aucune hypothese sur le comportement deterministe des executions n'est necessaire.

Pour assurer la presence d'une ligne de recuperation, des mecanismes de synchronisation d'etablissement des points de recuperation sont introduits an de coordonner l'etablissement des points de recuperation des processeurs de l'architecture Koo & Toueg 86]. Dans le cas d'une memoire partagee, trois strategies de synchronisation ont ete proposees.

La

synchronisation globale

force l'ensemble des processeurs d'un systeme a etablir un nouveau point de recuperation simultanement Ahmed et al. 90, E. L. Elnozahy & Zwae-nepoel 92, Carter et al. 93]. Avec une

synchronisation des points de recuperation et des communications

la formation de dependances entre processeurs est emp^echee en for-cant l'etablissement d'un point de recuperation par un processeur avant qu'il ne delivre une donnee modiee a un autre processeur Ahmed et al. 90, Wu et al. 90, Wu & Fuchs 90].

La frequence d'etablissement des points de recuperation est ici directement dependante du nombre de communications engendrees par l'application et peut ^etre la cause d'une degra-dation de performance importante Janssens & Fuchs 91, Ban^atreet al.93a]. Finalement, la

coordination dynamique

propose une solution intermediaire ou les communications entre les processeurs sont prises en compte de maniere a denir dynamiquementl'ensembledes pro-cesseurs concernes par l'etablissement d'un point de recuperation Joubert 93, Janakiraman

& Tamir 94].

Dans la suite du document nous nous limitons aux protocoles de recuperation pessimistes qui minimisent la taille des donnees de recuperation et sont les mieux adaptes au cas d'une architecture a memoire partagee ou les communications sont tres frequentes.

Recuperation arriere 31