This page is under construction, please visit later..

"Mise en oeuvre d'un protocole de validation atomique basé sur le consensus"

Tayeb Lemlouma et Sami Rezgui, Juin 1999.

Vue générale

La tolérance aux défaillances pour conserver la cohérence des bases de données, est parmi les problèmes survenus à cause de l'aspect distribué des systèmes informatiques répartis. Tolérer les pannes lors de la validation atomique d'une transaction revient à prendre une décision consistante même en présence de sites défaillants.

L'opération de validation d'une transaction T, concerne tous les sites participants dans le traitement, et par conséquent le gestionnaire de données du site initiateur de T, doit passer l'opération de validation à tous les sites où se trouve une donnée accédée par T. Ce qui est vrai pour l'opération de validation reste vrai pour l'opération de d'annulation. Donc, le traitement d'une seule action logique (Valider ou Annuler ) doit avoir lieu dans plusieurs sites dans le système de gestion de base de données distribuées, c'est cela qui diffère essentiellement ; le traitement distribué d'un traitement centralisé dans les systèmes transactionnels.

Le problème est très complexe. L'envoi de l'opération Valider -par le gestionnaire des transactions distribué- à tous les sites est insuffisant, car une transaction n'est pas validée par l'action d'envoi,(du gestionnaire de transactions) mais plutôt par l'action d'exécution de la validation (par le gestionnaire de données). Il est possible que le gestionnaire de données envoie un "Valider" au scheduler mais ce dernier le rejette et par conséquent annule la transaction. Dans ce cas, si la base de données est distribuée, la transaction doit être annulée sur tous les sites qui contiennent des données utilisées durant sa vie d'exécution. Un gestionnaire de données locale, exécute la décision finale (Valider ou bien Annuler), qui est prise par le site participant à la fin de l'exécution d'un algorithme appelé protocole de validation atomique. Un protocole de validation atomique est un ensemble d'algorithmes qui permet aux participants de valider (ou bien annuler) d'un accord commun, une transaction distribuée.

Dans ce mémoire, nous étudions deux types de protocoles qui résolvent le problème de la validation dans les systèmes répartis : le protocole de validation en deux phases, et un protocole de validation basé sur le consensus. Le premier protocole étudié est le protocole le plus et le plus utilisé (exemple : le système CA-OpenIngres l'utilise dans la validation distribuée[ZER 96]). Le protocole permet d'effectuer la validation en deux étapes : une étape de vote et une autre de décision. L'inconvénient majeur d'un tel protocole est qu'il peut mener à un état de blocage total du système si seulement un site tombe en panne. Parmi les paradigmes permettant de simplifier la construction des applications tolérantes aux défaillances dans les systèmes répartis, le problème du consensus est sans doute l'un des plus intéressants, dans la mesure où il permet d'abstraire plusieurs problèmes d'accord. Toute solution au problème de consensus peut servir comme une brique de base pour résoudre les problèmes d'accord. Le chapitre 2 dans cette thèse a été consacré à l'étude de la validation atomique en se basant sur l'utilisation du consensus.

La solution du problème de consensus, utilisée dans la validation est celle introduite par Chandra et Toueg en utilisant la classe de détecteur de défaillances àS [CHA 96a]. L'utilisation du consensus nous a permit de voir qu'avec un tel paradigme on peut résoudre le problème de validation atomique non-bloquante. En effet, le protocole issu n'est pas bloquant, malgré la présence de pannes dans le réseau, le protocole fonctionne et les sites opérationnels finissent son exécutions par la prise d'une décision de consensus qui est soit une validation ou une annulation de la transaction distribuée.


Please send your comments to Tayeb.Lemlouma@inrialpes.fr