La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Algorithmes de reconfiguration

Présentations similaires


Présentation au sujet: "Algorithmes de reconfiguration"— Transcription de la présentation:

1 Algorithmes de reconfiguration
Gestion des pannes Algorithmes de reconfiguration d’anneaux virtuels Alexis CLERC

2 Plan Généralités sur les anneaux virtuels Problématiques
Algorithmes communs Modélisation par réseaux de Pétri

3 Anneaux virtuels : généralités
Contexte : système réparti Définitions Jeton

4 Contexte : système réparti
Tolérance aux pannes Anneau virtuel

5 Définitions Connexion logique Site Panne

6 Jeton Message de contrôle unique Droits d’émission Durée limitée A C B
TRT A C B THT(A) THT(B) THT(C) d(A,B) d(B,C) d(C,A)

7 Jeton Message de contrôle unique Droits d’émission Durée limitée
Target TRT En avance En retard TRT THT (A) A

8 Problématiques Initialisation Insertion
Fermeture de l’anneau après rupture de liaison logique ou une panne de site Détection et traitement d’un partitionnement

9 Initialisation Un site isolé pose sa candidature Négociation I J K L

10 Insertion Si le consensus aboutit à un accord
Les anciennes liaisons sont fermées De nouvelles liaisons avec le site candidat sont ouvertes I J K L Oui, mais …..

11 … des problèmes Un inconvénient Une anomalie Autre proposition
Raison fondamentale : l’asynchronisme

12 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture

13 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L Etat initial

14 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L Rupture de J-K détectée par K

15 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L Rupture de K-L détectée par L

16 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L Rupture de J-K détectée par J

17 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L J et L sont disponibles → J-L établie

18 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L Rupture de I-J détectée par I

19 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L I et K sont disponibles → I-K établie

20 Fermeture de l’anneau après rupture de liaison logique ou une panne de site
Anneau brisé Détection Procédure de fermeture Un exemple : I J K L Etat final : Anneau partitionné

21 Détection et traitement d’un partitionnement.
Réévaluation des liaisons Voisins les plus proches Suppression de l’initialisation

22 Algorithmes communs Pré-requis Exclusion mutuelle par estampilles
Election Terminaison Contrôle des accès concurrents et traitements des interblocages

23 Pré-requis Précédence causale Ordonnancement par estampille
Ordonnancement par horloges vectorielles

24 Précédence causale Précédence directe Précédence Concurrence
a précède b  a < b et site(a) = site(b) ou a=site i .send(m) et b=site j .receive(m) Précédence a -> b  fermeture transitive de a précède b Concurrence a // b  non (a -> b) et non (b -> a).

25 Ordonnancement par estampille
Horloge logique Hi de Si Quand e sur Si, Hi ++ Quand Si.send(m), Em estampille(m) = Hi Quand Sj.receive(m),Hj = max(Hj, E(m))+1 Ordre total => Soit a sur Si et b sur Sj a => b  Hi(a) < Hj(b) ou (Hi(a) = Hj(b) et i<j). e(numéro de site, estampille)

26 Ordonnancement par horloges vectorielles
Problème de => : a => b  a -> b ou a et b causalement indépendants Soit un anneau à n sites Chaque Si a un Vi[1…n] Quand e sur Si, Vi[i] ++ Quand Si.send(m), Vm Estampille(m) = Vi Quand Sj.receive(m), Vj[k] := max (Vj[k], Vm[k]) pour k = 1, …, n

27 Ordonnancement par horloges vectorielles (suite)
Soit événement a daté par Va Passé(a) = {a, {e/e->a}} Va[i] = # {e / (e->a, et e sur Si) } +1 Ordre partiel V <= W  V[k] <= W[k] pour k = 1, …, n V < W  V <= W et V <> W V // W  non (V <= W) et non (V <= W) Précédence causale a -> b  Va < Vb a et b causalement indépendants  Va // Vb

28 Exclusion mutuelle par estampilles
Application directe de l’ordonnancement des événements par estampilles File d’attente répartie, ordonnée Un seul processus en section critique Pi demande l’autorisation, Pj la reçoit Pj n’est en SC, et n’a pas fait de demande => accord Pj a fait un demande => accord ou accord différé Pj est en SC => accord différé 2(n-1) messages

29 Election Exemple : perte du jeton Un seul doit le régénérer
Choix de l’élu arbitraire : Si / i max(1 …n) Algorithme de filtrage Chaque Pi candidat transmet m(i) Quand Pj recoit m(i) Si i < j, m(i) détruit et Pj candidat Sinon, Pj retransmet m(i)

30 Terminaison Détection de la fin d’un calcul réparti
Comparaison avec l’interblocage Similitude : absence d’évolution Différence : non connu a priori Détection en 2 tours de jeton Marquage des sites suivant leur activité Terminaison quand tous les sites sont marqués inactifs

31 Contrôle des accès concurrents et traitements des interblocages
Exécution séquentielle de processus concurrents Conflit : actions incompatibles sur un objet Relation de dépendance << sur un graphe Cycle sur le graphe = interblocage Contrôle de dépendance Contrôle continu Contrôle de terminaison

32 Contrôle des accès concurrents et traitements des interblocages (suite)
Respect de l’ordre de verrouillage et méthode de détection-guérison des interblocages Graphe de dépendance = graphe d’attente Lors d’une détection de cycle p1-p2-…-pn Un pi en jeu doit être annulé puis repris Choix du pi : Auteur de l’interblocage Celui qui a verrouillé le moins de ressources Le plus récent

33 Contrôle des accès concurrents et traitements des interblocages (suite et fin)
Ordonnancement par estampille et méthodes de prévention des interblocages. Ordre établi par estampillage En cas de conflit : si ordre respecté, action acceptée sinon, action annulée, puis reprise Résultat : pas de cycles dans le graphe des attentes

34 Modélisation par réseaux de Pétri
Analyse descendante Messages typiques Principe de suspicion Qualités de services des couches inférieures Routage Transport Pertes de messages détectées Messages non dupliqués Messages contrôlés, et donc supposés corrects Liaisons logiques surveillés par émission/acquittement de messages de contrôle, avec un mécanisme de time-out

35 Niveau 0 : Etat d’un site Etats Transitions
Inactif Actif Transitions Traitement de reprise Défaillance IN tr df AC [ IN ( tr > AC ; AC ( df > IN ] *

36 Niveau 1 : Etat d’un site / système
Etats Déconnecté Transitions Traitement de défaillance Traitement de connexion IN td D df tc IN (tr > AC devient IN (td > D ; D ( tc > AC AC [IN (td > D ; D ( tc > AC ; AC ( df > IN ] *

37 Niveau 2 : Etat d’un site / anneau
Etats Inactif coté successeur Inactif coté prédécesseur Actif coté successeur Actif coté prédécesseur Transitions Défaillance coté successeur Défaillance coté prédécesseur SI PI td D pdf sdf tc PA SA AC devient SA et PA IN devient SI et PI df devient sdf et pdf [ PI et SI ( td > D ; D ( tc > PA et SA ; [ PA ( pdf > PI // SA ( sdf > SI ] ]*

38 Niveau 3 : Etat d’un site / voisins
PI Etats Liaisons ouvertes (PO, SO) Liaisons fermées (PF, SF) Transitions Déconnexion quand liaison ouverte (ppo, spo) Déconnexion quand liaison fermée (ppf, spf) Ouverture de liaison (plo, slo) Fermeture de liaison (plf, slf) Rupture de liaison (plr, slr) td D ppo ppf spf spo tc PF SF plf plr plo slf slr slo PO SO PA devient PF ou PO SA devient SF ou SO sdf devient spo et spf [ PF ( plo > PO ; PO ( plf ou plr > PF] // [ SF ( slo > SO ; SO ( slf ou slr > SF] [ PF ( ppf > PI ou PO (ppo > PI ] // [ SF ( spf > SI ou SO (spo > SI ]

39 Et plus encore !! Messages de synchronisation
Identité des sites émetteurs et destinataires -> Réseaux de Pétri à prédicats

40 Bibliographie Modeling of a virtual ring protocol by means of Petri nets Pascal Estraillier – Article présenté au 1er colloque de Génie logiciel The Totem Single-Ring ordering and membership protocol Amir, Moser, Melliar-Smith, Agarwal, Ciarfella – University of California Depth first traversal and virtual ring construction in distribued systems Helary, Raynal – Unité de recherche INRIA Rennes Eléments fondamentaux des systèmes répartis Michel RIVEILL - Projet IMAG-INRIA Sirac

41 Remerciements INRIA pour m’avoir envoyé ses articles
Mr Terrat pour m’avoir prêté l’article sur les réseaux de Petri en français Vous, pour votre attention !


Télécharger ppt "Algorithmes de reconfiguration"

Présentations similaires


Annonces Google