Les types, la frรฉquence et les solutions aux pannesย
Nous dรฉcrirons dโabord la relation existante entre les notions de faute, dโerreur et de panne aprรจs avoir donnรฉ leurs dรฉfinitions [1][7]. Ensuite, nous prรฉsenterons les diffรฉrents types de panne d’un systรจme ร large รฉchelle tel que le nรดtre. Enfin nous รฉtudierons la frรฉquence de ces pannes et prรฉsenterons les solutions existantes pour tolรฉrer (prรฉvenir ou rรฉparer) ces pannes.
Notions de Faute, Erreur et Panneย
โ Panne (outage) : Un systรจme est dit en panne lorsqu’il ne se comporte pas conformรฉment ร sa spรฉcification. Une panne est aussi appelรฉe ยซ dรฉfaillance ยป . Une dรฉfinition plus dรฉtaillรฉe sโappuyant sur les attributs tels que la contrรดlabilitรฉ, la consistance, les consรฉquences sur le systรจme et le domaine de panne est donnรฉe en [1].
โ Erreur (error) : Une erreur est un รฉtat anormal d’un systรจme, susceptible de causer une panne, mais ne la provoque pas nรฉcessairement (ou pas immรฉdiatement) soit parce quโil y a une redondance interne suffisante pour que le systรจme continue de fournir le service, soit la partie erronรฉe de lโรฉtat nโest pas utilisรฉe pour telle ou telle fonction. Le temps entre lโapparition de lโรฉtat dโerreur et la panne est le dรฉlai de latence. Une erreur est latente tant quโelle nโa pas provoquรฉ de panne.
โ Faute (fault) : Une faute peut รชtre une action, un รฉvรฉnement ou une circonstance qui peut entraรฎner une erreur.
On remarque quโil ya une relation de causalitรฉ entre Faute, Erreur et Panne. Par exemple, dans le cadre des systรจmes pair-ร -pair, la panne dโun nลud est une faute (pour le systรจme) qui a pour consรฉquence lโerreur : le nลud nโest plus accessible. Si un autre pair veut accรฉder au nลud, cela sera impossible. Le systรจme nโest donc plus conforme ร sa spรฉcification, on a donc une panne.
La tolรฉrance aux pannes vise ร prรฉserver le service rendu par le systรจme malgrรฉ lโoccurrence de fautes. Le terme ยซ tolรฉrance aux fautes ยป, en allusion au systรจme lui mรชme, est gรฉnรฉralement utilisรฉ ร lร place de ยซ tolรฉrance aux pannes ยป ; les fautes du systรจme รฉtant les pannes de ses composants, tolรฉrer ses fautes revient ร tolรฉrer les pannes de ses composants. Nous parlerons donc de fautes et de pannes selon le niveau auquel nous nous situons, mais cela correspondra toujours aux pannes des composants (nลuds, rรฉseau de communication).
Les diffรฉrents types de panne
La classification des diffรฉrents types de panne รฉtant sous-jacente au modรจle du systรจme utilisรฉ, nous allons dโabord prรฉsenter lโarchitecture de notre systรจme avant dโรฉtudier ses pannes. Rappelons que notre objectif est dโacheminer des transactions dans un rรฉseau en pair-ร -pair qui, de par sa dรฉfinition mรชme, est un environnement trรจs volatile oรน les dรฉconnexions frรฉquentes de nลuds doivent รชtre prises en charge afin de gรฉrer la cohรฉrence de la base de donnรฉes rรฉpartie.
Lโarchitecture de notre systรจme
Elle correspond ร celle dโune base de donnรฉes rรฉpartie au-dessus dโun rรฉseau ร large รฉchelle. Elle dรฉfinit quatre catรฉgories de nลuds. La figure suivante prรฉsente lโarchitecture de notre systรจme et montre ses diffรฉrents types de nลuds :
โข Description de lโarchitecture :ย
โค DBMS Node : un DBMS Node est un nลud stockant localement une rรฉplique, partielle ou entiรจre, de la base de donnรฉes avec un SGBD. On distingue gรฉnรฉralement deux groupes de DBMS Nodes, ceux qui ont des rรฉpliques en lecture seule (read-only) et ceux ayant des rรฉpliques en lecture et รฉcriture (read-write).
โค Catalogue Node : cโest un nลud faisant partie du catalogue gรฉrant les mรฉtadonnรฉes. Nous ne nous intรฉresserons pas ร ce type de nลud. En effet nous considรฉrons le catalogue comme une application ร part avec laquelle nous interagissons pour lire et/ou รฉcrire dans les mรฉtadonnรฉes. Un exemple dโune telle application est lโexemple de Juxmem [2][14] qui est aujourdโhui toujours en phase de dรฉveloppement.
โค TM Node : un Transaction Manager Node est un nลud chargรฉ dโacheminer les transactions des applications vers les DBMS Node. Lorsquโil reรงoit une transaction dโun utilisateur, il choisit, en fonction des charges et fraรฎcheurs (et รฉventuellement dโautres paramรจtres), le DBMS Node le plus adรฉquat pour traiter la requรชte du client. Une รฉtude sur le routage est faite en [3]. Elle se fonde sur la notion de fraรฎcheur.
โค Client Node : cโest un nลud demandant un service, un client.
Remarque : un nลud peut-รชtre ร la fois un Catalogue Node, un DBMS Node et/ou un TM Node, et comme on est en P2P, il peut jouer le comportement dโun client ou dโun serveur selon les circonstances.
โข Fonctionnement du systรจme de routage :ย
Le systรจme fonctionne comme suit : un nลud client se connecte ร un TM Node et lui envoie sa transaction. Le TM Node analyse la transaction afin de savoir ร quelle partie de la base elle veut accรฉder. Il identifie par la suite lโensemble des DBMS Nodes stockant une rรฉplique des donnรฉes sollicitรฉes. Il en choisit le plus optimal (i.e. le nลud avec le coรปt d’exรฉcution le plus faible) en se basant sur les informations stockรฉes dans le catalogue. Et enfin il route la transaction vers le nลud DBMS choisi pour que celui-ci fasse lโexรฉcution. Aprรจs lโexรฉcution de la transaction, le DBMS Node envoie directement les rรฉsultats au nลud client qui avait envoyรฉ la requรชte et un message au TM Node pour lui faire part de la bonne terminaison de la transaction. Durant ce processus faisant intervenir au moins trois nลuds, des pannes peuvent survenir ร tout moment. Et suivant le niveau oรน intervient la panne on peut avoir plusieurs cas que nous allons dรฉcrire et classer dans la section ci-aprรจs.
Mais avant dโeffectuer ce classement, notons dโabord quโun SGBD est composรฉ de plusieurs composants ou modules chargรฉs dโopรฉrer chacun une tรขche spรฉcifique nรฉcessaire au bon fonctionnement du SGBD. Lโun de ces composants est le module ou gestionnaire de transactions [4] garant du traitement des transactions (une transaction รฉtant un ensemble dโopรฉrations dโaccรจs et de mise ร jour de donnรฉes รฉmises par un utilisateur). On peut le prรฉsenter comme suit :
โค Module de transactions : il est responsable du traitement des transactions dans lโarchitecture dโun SGBD. Une transaction รฉtant un ensemble dโopรฉrations dโaccรจs et de mise ร jour de donnรฉes, ces opรฉrations doivent รชtre traitรฉes comme un tout. Le module de transactions doit assurer dโune part lโindivisibilitรฉ des opรฉrations soumises, la cohรฉrence du systรจme aprรจs lโexรฉcution de lโensemble des opรฉrations, lโisolation des traitements par rapports aux autres traitements en cours dโexรฉcution et enfin la persistance des rรฉsultats. Ce sont les propriรฉtรฉs ACID.
Les diffรฉrents types de panneย
โค Panne de SGBD : elle fait rรฉfรฉrence ร la panne du serveur SGBD qui tourne sur un DBMS Node.
โค Panne du module de transactions : cโest la panne du module de transactions du serveur SGBD dโun DBMS Node.
โค Panne de nลud : panne dโun nลud du systรจme. Le nลud peut รชtre un nลud TM Node, DBMS Node ou Client Node. La panne peut-รชtre due ร une coupure dโalimentation, des problรจmes logiciels, matรฉriels (disques, Ram, …).
โค Panne de communication : messages perdus ou non dรฉlivrables, partitionnement du rรฉseau (network partitioning).
Remarque : Les pannes de nลud du type DBMS Node, de SGBD et de module de traitement de transactions induisent les mรชmes consรฉquences: le nลud ne peut pas exรฉcuter de transactions. De ce fait, elles peuvent avoir le mรชme traitement. Nous ne considรฉrerons donc pas les pannes de SGBD et celles du module de traitement de transactions, nous les assimilons ร des pannes de nลud puisquโelles ont les mรชmes consรฉquences. Un autre type de panne que nous assimilons ร des pannes de nลud est la panne de transaction (abort). Ces pannes peuvent รชtre dues ร des erreurs de donnรฉes ou des deadlocks.
Notons que dans les systรจmes trรจs volatiles que sont les P2P en particulier, la dynamicitรฉ a en gรฉnรฉral les mรชmes effets que les pannes. Cependant, il est gรฉnรฉralement possible de traiter ces cas de maniรจre plus efficace. En effet, ces interventions peuvent รชtre prรฉvues et les dรฉconnexions peuvent donc รชtre faites ยซ proprement ยป (en prรฉvenant les autres sites ou nลuds). Notons toutefois qu’un systรจme qui tolรจre les pannes tolรฉrera รฉgalement les dรฉconnexions volontaires ou involontaires. Enfin, les รฉquipements rรฉseaux comme les routeurs ou les serveurs de noms peuvent รฉgalement tomber en panne, rendant ainsi des nลuds temporairement inaccessibles.
|
Table des matiรจres
Introduction
Chapitre 1 : Les types, la frรฉquence et les solutions aux pannes
1. Introduction
2. Notions de Faute, Erreur et Panne
3. Les diffรฉrents types de panne
3.1. Lโarchitecture de notre systรจme
โข Description de lโarchitecture
โข Fonctionnement du systรจme de routage
3.2. Les diffรฉrents types de panne
4. Dรฉtermination de la frรฉquence probable des pannes
5. รtude des solutions existantes pour prรฉvenir ou rรฉparer ces pannes
5.1. Les solutions prรฉventives : la redondance
5.2. Les solutions optimistes ou ร posteriori
5.2.1. Principes de dรฉtection des pannes
5.2.2. Mise en ลuvre de dรฉtecteurs de pannes
5.3. Le traitement des erreurs du systรจme
6. Conclusion
Chapitre 2 : La rรฉplication
1. Introduction
2. Avantages et inconvรฉnients
3. Mise ร jour synchrone et asynchrone
4. Rรฉplication asymรฉtrique et symรฉtrique
5. Processus de synchronisation
5.1. Initiative du rafraรฎchissement
5.2. Dรฉtection des mises ร jour
5.3. Nature des rafraรฎchissements
6. Notions de cohรฉrence
7. Borner la frรฉquence des pannes
8. Conclusion
Chapitre 3 : Les mรฉcanismes de gestion de pannes dans un rรฉseau ร large รฉchelle
1. Introduction
2. Mรฉcanismes de dรฉtection de pannes
2.1. La dรฉtection des pannes dans un rรฉseau ร large รฉchelle
2.2. Algorithme de dรฉtection des pannes de nลud et de communication
3. Mรฉcanismes de tolรฉrance aux pannes
3.1. Algorithme des Client Nodes
A. Les pannes vues ร partir dโun nลud client
B. Description de lโalgorithme
3.2. Algorithme des DBMS Nodes
A. Les pannes vues ร partir dโun DBMS Node
B. Description de lโalgorithme
C. Algorithme
3.3. Algorithme des TM Nodes
A. Les pannes vues ร partir dโun TM Node
B. Description de lโalgorithme
B.1. Tolรฉrance des pannes vues par les TM Nodes
B.2. Validation diffรฉrรฉe des transactions
C. Algorithme
4. Diagramme de processus UML de notre traitement
5. Conclusion
Chapitre 4 : Validation
1. Introduction
2. Peersim
3. Notre implรฉmentation
3.1. La classe MyCatalogue
3.2. La classe MyProtocol
3.3. La classe MyTransaction
3.4. La classe NetworkInitializer
3.5. La classe NetworkObserver
3.6. La classe NetworkManager
4. Expรฉriences
4.1. Impact du nombre de rรฉpliques sur le traitement
4.2. Comparaison avec un traitement ne tolรฉrant pas les pannes
4.3. Impact du nombre de pannes sur le traitement
4.4. Comparaison des approches probabiliste et hiรฉrarchique
5. Conclusion
Conclusion et Perspectives
BIBLIOGRAPHIE