Checkpointing

Transcription

Checkpointing
Techniques de reprise sur sauvegarde!
en environnement réparti
2!
Reprise sur sauvegarde
(rollback- recovery)
Modèles d'exécution
Master SAR – M2 ARA!
[email protected]!
Applications réparties composées de processus communicants
Transparents originaux de Pierre Sens
Processus déterministes : définis par un état initial et une séquence d'événements
Processus non déterministes
Définitions - rappels
Principe
Points de reprise non coordonnés
Les processus sauvegardent leur état sur support
stable pour prévenir les pannes éventuelles
Points de reprise de coordonnés
rollback
failure
checkpoint
Journalisation
Panne => reprise à partir d'un état antérieur
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
3!
4!
En réparti : Problème de cohérence!
Point de reprise d’un processus isolé
Maintenir la cohérence du système !
Tout effet doit être précédé de sa cause!
⇒  Dans les systèmes répartis :!
Tout message reçu doit être préalablement émis!
Copie du contexte sur support fiable (mécanisme lourd)
Pour réduire le coût :
•  Méthodes incrémentales
Sauvegarde limitée aux données mises à jour (pages modifiées)
•  Sauvegarde non intrusive
Continuer l’exécution pendant la réalisation du point de reprise
Problème : risque de sauvegarder un état incohérent
(a,b)
b → b'
a
Copy-on-write : recopie des pages protégées au moment de l'écriture
Pre-copying : recopie locale du point de reprise
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
b'
cohérent
Introduction
incohérent
Non coordonné
Coordonné
cohérent
Journalisation
Conclusion
5!
6!
Processus communicants : Contexte
Paradoxe temporel et effet domino!
retour arrière
Monde Extérieur
« défaire » une émission => « défaire » une réception !
Output
Input
P1
P2 X
P
X
P3 X
Applications
réparties
X
P4 X
P5
Echange de messages
X
X
R
X
X
S
X
X
Q
retour arrière
Ligne de recouvrement
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
7!
8!
Intéraction avec le monde extérieur
Impossible de « défaire » les actions extérieures
=> « Validation » des envois vers l ’extérieur (output commit)!
Support stable
Support qui résiste aux fautes!
1 Faute : Support stable = un processus distant (en mémoire volatile)!
(Targon-32)!
Monde Extérieur
Fautes transitoires : Support stable = disque local!
(DAWGS, Condor)!
Fautes permanentes : Support stable = Système de fichiers répliqué !
(STAR)!
P
Q
R
S
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
9!
10!
Techniques de reprise sur sauvegarde
Point de reprise non coordonnés!
Points de reprise non coordonnés
Technique naïve!
Trouver une ligne de recouvrement
Sauvegarde locale après chaque émission!
Théoriquement bon!
Pas de message orphelin => pas d'effet domino!
Défaillance entre l'envoi et la sauvegarde => retour à la sauvegarde précédente!
Faible surcoût mémoire (une seule sauvegarde par nœud)!
Points de reprise coordonnés
Coordination des processus lors des points de reprise
L’ensemble des derniers points de reprise forme une ligne de recouvrement
Faute => reprise des processus à partir de leur dernier point de reprise
Pas optimal en pratique!
Coût prohibitif de la sauvegarde pour les nœuds qui émettent beaucoup!
Rollback important pour les noeuds émettant peu mais recevant/traitant beaucoup!
Journalisation
Sauvegarde des événements
Faute => rejouer le même scénario
Introduction
Non coordonné
Coordonné
Sauvegardes indépendantes de l’application!
Pb : trouver une ligne de recouvrement cohérente!
Construction centralisée d'un graphe de causalité!
Algorithmes de recouvrement décentralisés!
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
11!
12!
Déterminer la ligne de recouvrement
Point de reprise non coordonnés!
Graphe de dépendance des reprises (rollback dependency graph )
Construction centralisée d'un graphe de causalité!
Chaque processus maintient un graphe localement!
Graphe de dépendance directe entre ses points de reprise et ceux distants !
Recouvrement!
1. 
2. 
3. 
4. 
b)
Diffusion d'une requête!
Collecte des graphes locaux => construction d'un graphe global
Déterminer la ligne de recouvrement!
Reprise des exécutions
Ci,y
Pi
Ii,x
Ci,x
Ci,y
Ci,x
Cj,y
Ci,x
m
Cj,y
Pj
devient
devient
Récepteur de mise à jour du graphe en mémoire volatile (checkpoint volatile) : Ci,x --> Cvolatile
Rollback dependency graph [Bhargava 88, Wang 95]!
Checkpoint graph [Wang 93]
Non coordonné
Ci,x
Pi
Chaque message estampillé par <Intervalle exp. (i,x)>
Deux approches par graphes!
Introduction
a)
Coordonné
Journalisation
Point de reprise => Ecriture du graphe sur support stable
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Graphe de reprise : Exemple
C 0,0
P0
C 0,1
•
•
P1
C 2,0
•
C 2,1
•
C 1,1
C 1,0
•
•
C 2,0
C 2,1
C 3,0
C 3,1
•
•
•
Pi
C 2,2
devient
C 0,2
•
Initialement marqué
C Volatile0
•
C 1,3
C 1,2
•
•
•
•
C Volatile3
C 3,2
Coordonné
CVolatile0
C1,0
C1,1
C1,2
C1,3
C2,2
CVolatile2
•
C2,0
C2,1
C3,0
C3,1
•
•
•
•
Reprise à partir des premiers points de reprise non marqués
Non coordonné
C0,2
•
•
•
•
C0,1
•
C Volatile2
C 2,2
C0,0
•
C Volatile1
Journalisation
Ci,x
Cj,y
Cj,y
Pj
•
•
Introduction
Ci,x
•
C 3,2
•
C 0,1
•
•
•
•
C 0,0
•
C 3,1
C 3,0
P3
Graphe de points reprise (checkpoint graph)
C 1,3
C 1,2
•
P2
14!
C 0,2
•
C 1,1
•
C 1,0
13!
•
•
•
•
•
•
C3,2
CVolatile3
•
Initialement marqué
CVolatile1
•
•
Remarque : Graphe utilisé aussi pour le GC des points de reprise
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
15!
Graphe de points de reprise : ligne de recouvrement
RootSet = {ensemble des derniers points de reprise (PR)}
Marquer le point de faute & tous les PR accessibles depuis les membres du RootSet
TQ (au moins 1 membre du RootSet est marqué) {
remplacer dans le RootSet chq PR marqué par son prédécesseur sur le même processus
marquer tous les PR accessibles depuis les membres du RootSet }
La ligne de recouvrement est alors constituée par les membres du RootSet
C0,0
C0,1
C0,2
C1,0
C1,1
C1,2
C1,3
C2,0
C2,1
C2,2
CVolatile2
C3,0
C3,1
•
•
•
•
•
•
•
•
•
•
CVolatile0
•
•
•
•
C3,2
CVolatile3
•
Initialement marqué
CVolatile1
16!
Points de reprise non coordonnés!
Algorithmes de recouvrement décentralisés!
But : déterminer une ligne de recouvrement sans l'aide d'un graphe
Des exercices théoriques généralemment difficiles à mettre en œuvre
•  Complexes
•  Coûteux
•  Associés à des hypothèses fortes
2 exemples
1.  Juang-Venkatesan
2.  Peterson-Kearns
•
Remarque : Graphe utilisé aussi pour le GC des points de reprise
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
17!
Point de reprise non coordonnés!
Point de reprise non coordonnés!
Juang-Venkatesan!
Juang-Venkatesan!
Méthode
Comptabilisation des messages sur tous les canaux
Algorithme
Si (Pi défaillant) revenir au dernier état sauvegardé
Sinon créer nouveau Si volatile
Hypothèses
Canaux fiables et FIFO
Délais de transmission non connus mais bornés
Mémoire locale infinie
Processus à causalité événementielle (piece-wise deterministic)
Répéter N-1 fois // N le nb de sites
Pour tout site j ≠ i
envoyer (<ROLLBACK, i, SENTij(Si)>)
Répéter N-1 fois
recevoir(<ROLLBACK, j, v>)
Si (RCVDji(Si) > v) // il y a des messages orphelins
Trouver (S'i) le plus tardif tel que RCVDji(S'i) ≤ v
Si = S'i
FinR
FinR
En local, chaque processus Pi conserve
Un compteur d'état Si incrémenté à chaque sauvegarde
Pour chaque voisin Pj :
un compteur d'émission SENTij et un compteur de réception RCVDji
Chaque sauvegarde inclut Si, ainsi que SENTij et RCVDji pour chaque canal
Introduction
18!
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
19!
Point de reprise non coordonnés!
Point de reprise non coordonnés!
Juang-Venkatesan!
Peterson-Kearns!
Exemple
p
q
<p1, 0, 0>
Méthode
Horloges vectorielles sur un anneau
<p3, 1, 4>
<p2, 0, 2>
Introduction
<q2, 2, 0>
Non coordonné
[RB, q, 4]
<q2, 3, 1>
Coordonné
Hypothèses
Canaux fiables avec délais de transmission non connus mais bornés
Processus organisés en anneau (chacun connaît son successeur)
load(<p3, 1, 4>)
[RB, p, 1]
<q1, 1, 1>
20!
Journalisation
Conclusion
En local, chaque processus Pi maintient une horloge vectorielle
Un numéro d'incarnation est incrémenté à chaque recouvrement
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
21!
22!
Point de reprise non coordonnés!
Point de reprise non coordonnés!
Peterson-Kearns!
Peterson-Kearns!
497
Algorithme
13.9 Peterson–Kearns algorithm based on vector time
Exemple
P0
Coordonné
Journalisation
m4
m5
[0](5, 4, 0)
[0](1, 4, 0)
1
P1
C1
(0, 0, 0)
(1, 1, 0)
(1, 3, 0) (1, 4, 0)
(1, 2, 0)
C1,1(1)
m3
m1
[0](1, 3, 0) [0](1, 4, 0)
[0](1, 4, 4)
1
P2
m6
C2
(0, 0, 0)
(1, 3, 2)
(0, 0, 1)
Figure 13.17 An example of
rollback recovery in the
Introduction
Peterson–Kearns
algorithm.
Conclusion
23!
Points de reprise coordonnés : Problème!
(1, 4, 3)
(1, 4, 4)
C1,0(1)
rb11
W1,1(1)
(1,4,0)
[1](3, 0, 0)
Non coordonné
m2
[0](1, 0, 0)
W1,0(1)
rs01
[1](3, 0, 0)
m0
Failure
1
(3, 0, 0)
f0
(4, 4, 0) (5, 4, 0)
[0](2, 0, 0)
Réception de <[incarnation] (horlogei)> sur Pj
Si ((Pj initiateur) && (horlogej[j] ≥ horlogei[j]))
FIN
Si (incarnationlocale < incarnation)
incarnationlocale = incarnation
Si (horlogej[j] < horlogei[j])
Sj = Sj' telle que horlogej'[j] ≥ horlogei[j]
Propagation de <[incarnation] (horloge de Sj)>
Sinon
Propagation de <[incarnation] (horloge de Si)>
Introduction
(3, 0, 0)
1
C0
(0, 0, 0) (1, 0, 0) (2, 0, 0)
[1](3, 0, 0)
Si (P∂ défaillant)
Revenir au dernier état sauvegardé S∂
Création d'un jeton <[incarnation++] (horloge de S∂)>
Propagation dans l'anneau
C1,2(1)
rb21
(1, 4, 4)
W1,2(1)
Three
messages Coordonné
are in transit while
the polling wave
is executing. The
Non
coordonné
Journalisation
Conclusion
message m2 from P0 to P2 with label [0](2, 0, 0) will be accepted when
it arrives. Likewise, message m6 from P2 will be accepted by P1 when
it arrives. However, application of rule CRB6 will result in message m5
with label [0](5, 4, 0) being discarded when it arrives at P1 . The net effect
of the recovery process is that the application is rolled back to a consistent global state indicated by the dotted line, and all processes have suf24!
ficient information to discard messages sent from orphan events on their
arrival.
Point de reprise coordonnés : Sync-and-Stop (SaS)!
13.9.4 Correctness proof
Un coordinateur appelle
barrière
de orphaned
synchronisation
geler
Firstune
we show
that all
events are pour
detected
and l’application
eliminated [28].
(arrêt des envois de message)!
Theorem 13.1 The completion of a wave in casual rollback protocol insures
Algorithme : !
that every event orphaned by failure fim is eliminated before the final polling
1. 
Le coordinateurwave.
diffuse un message chkptReq à tous les processus!
2. 
Réception chkptReq
:" that when the initiator process receives the token back, all
Proof sur
We p
prove
p stoppe l’application
(plus
d’envoi)
et renvoie
chkptReady
au is, for an event
the orphan
events
have been
detected and
eliminated. That
coordinateur! wi!j "m#, as specified in the causal rollback protocol,
3. 
Lorsque le coordinateur a reçu chkptReady de tous lesmprocessus, il diffuse
¬Orphan"w "m#! fi #$
un message chkptDo et sauvegarde son état! i!j
4. 
Réception de chkptDo
surprove
p :" that the token, as constructed during the restoration of a
First we
failed
contains
necessary information to determine if any event is
p sauvegarde son
étatprocess,
et renvoie
chkptDone!
orphaned by a failure. If there exists any orphan event ei! due to failure fmj ,
5. 
Lorsque le coordinateur
a reçu tous les chkptDone, il diffuse
then the vector timestamp in the token will be less than the vector time of
chkptCommit pour
débloquer les processus!
the event, i.e., tk"j! m#$ts < V "e! #. By CRB2, the vector timestamp in the
1 coordinateur synchronise les points de reprise!
Coordinateur
X
•
ckpt_req
•
X
X
•
X
•
i
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
i
Journalisation
Conclusion
25!
SaS : Exemple!
Algorithme non bloquant : Chandy-Lamport 85!
Exécution stoppée
•  Algorithme “distributed snapshot” : sauvegarde cohérente de
l’état global (état des processus + canaux de communication)!
•  Hypothèse : canaux FIFO!
•  Le coordinateur diffuse un marker et fait son point de reprise!
•  Réception du marker sur p sur le canal c:!
–  Si p n’a pas encore sauvegardé son état :!
C (P1)
chkptDo
chkptReq
chkptCommit
chkptReady
P2
•  Rediffusion du marker et sauvegarde d’état!
chkptDone
P3
•  Tout message reçu sur le canal c entre la sauvegarde et la
réception du marker sur c est sauvé (message en transit)!
Checkpoint
Introduction
Non coordonné
26!
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
27!
Chandy-Lamport : Exemple!
marker
28!
Points de reprise coordonnés non bloquants!
Log messages
Initiateur
x
Initiateur
x
P1
Ckpt_req
Ckpt_req
P2
Data
message
x
x
m
m
x
x
P3
•  Problème : Coûteux en message, accès au support stable!
•  Chandy-Lamport modifié (MCL) !
–  [Agbaria06] :réduire le nombre d’accès au support, sauvegarde
uniquement après la réception de tous les markers !
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
[Lai-Yang 87]
Hypothèse : canaux non FIFO
[Chandy-Lamport 85]
Hypothèse : canaux FIFO
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
29!
30!
Points de reprise coordonnés à synchro. minimale!
Koo & Toueg 87 par la pratique!
Koo & Toueg 87!
Messages estampillés – Chaque processus q conserve :!
Last_rmsgq(p) - numéro du dernier message reçu de p depuis le dernier checkpoint !
First_smsgq(p) - numéro du premier message envoyé à p depuis le dernier checkpoint !
<q, 5>
new
[5]
<t, 2>
q
new
[10]
Création d’un point de reprise PR!
1. 
2. 
<r, 10>
p
r
Notification aux processus dont on a reçu un message postérieur à PR-1!
Test d’incohérence de chaque processus émetteur!
s
Incohérence ⇒ création d’un nouveau point de reprise par l’émetteur!
[2]
Reprise!
t
new
Annulation des envois postérieurs aux derniers points de reprise!
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
31!
Koo & Toueg 87 : Reprise minimale
Reprise : propager aux processus dont on "défait" un envoi de message
Reprise de q
1.  Diffusion des numéros de dernier message envoyé avant le dernier point de reprise
(last_smsg q(p))
8
9
•
10
Reprise ....
Introduction
Non coordonné
Sauvegarde (atomique) après chaque émission [Wu & Fuchs 90]
[1]
1
P1 x
Coordonné
[2]
[1]
2
X
[1]
1
P2 x
•
P3
Algorithme "naïf"
Réception d'un message m :
ckpt si m.compteur > compteur_local
2
1
x
P0 x
<P1, 9> <P2, 8> <P3,Ø>
•
P2
Coordination implicite : utilisation des messages d'applications
Un compteur date les points de reprise (+1 à chaque checkpoint)
Chaque message est estampillé par le compteur de l'émetteur
•
•
P1
Point de reprise coordonnés à synchronisations implicites
Algorithme de base : [Briatico 84]
2°) Reception sur p :
Si last_smsgq(p) < last_rmsgp(q)
Reprendre ==> Lancer l'algorithme localement
P0
32!
Journalisation
Conclusion
Introduction
2
x
x
Non coordonné
Coordonné
Journalisation
Conclusion
33!
34!
Points de reprise coordonnés : synchro. implicite (2)
Zigzag-Path (Xu & Netzer 93)
Netzer et Xu 95
•  Extension des chemins de causalité de Lamport!
C1
x
•  Un Zigzag chemin (Z-path) de Cp,i à Cq,j est une séquence de
messages (m1, m2, …, ml); l ≥ 1, telle que:!
–  m1 est envoyé par p après Cp,i!
–  Si mk (1 ≤ k < l) est reçu par r, alors mk+1 est envoyé par r
dans le même intervalle (ou plus tard)!
x
Coordonné
x
C3
x
x
C2
Propriété fondamentale :
S’il existe un Z-path de C1 à C2 alors C1 et C2 ne peuvent faire
partie du même ensemble cohérent de points de reprise!
–  ml est reçu par q avant Cq,j !
Non coordonné
x
m2
x
mk+1 peut être envoyé après la réception de mk!
Introduction
x
m1
Z-cycle : Il existe un Z-Path de C vers lui-même. !
!Si C appartient à un Z-cycle alors il ne peut faire partie d’une ligne de recouvrement!
!C est inutile
Ex : [m2, m1] forme un Z-chemin de C3 vers lui-même
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
35!
Algo. adaptatif à base de détection de Z-Cycle!
36!
Recouvrement par journalisation
Point de reprise non coordonné
•  [Hélary 97] – sur les principes de [Briatico 84]!
P0
C0,2
X
C0,1
X
Détection de Z-Cycle potentiel de C1,1
=> Point de reprise forcé avant la réception
Principe : Reconstruire l'état précédant la faute en rejouant le même
scénario
=> Tracer tous les événements non déterministes (logging)
Hypothèse d'application "piecewise deterministic" (PWD) :
- Exécution ensemble d'intervalles déterministes
- Chaque intervalle commence par un événement non déterministe
(réception d'un message).
X
C1,1
P1
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
37!
38!
Journalisation pessimiste
Journalisation Pessimiste : Optimisations
Implantation matérielle du support stable :
Mémoire non volatile (FTM)
Journalisation synchrone de tous les messages reçus
⇒ un processus repris consomme les messages du journal
Détection des réémissions (estampillage)
⇒ rejet des messages retransmis par les processus repris
M1
M2
M3
point de reprise
Bus spécifique (TARGON-32)
Sans matériel spécifique :
Utiliser la mémoire vive de l'émetteur (Sender Based Message Logging [Johnson 90])
faute
exécution normale
P
retour
P
m
ré-exécution
M1
M2
M3
Non coordonné
M5
ordre recept.
rejeter
journal
Introduction
M4
Coordonné
•
m
Traitement m
<m,ordre>
Journalisation
Conclusion
Introduction
Non coordonné
Reprise
Coordonné
Journalisation
Conclusion
39!
40!
Journalisation Optimiste!
Journalisation Causale (Manetho, [Elnozahy 94])
Chaque processus maintient un graphe de précédences!
Sauvegarde asynchrone en RAM!
!(historique des événements non déterministes qui précèdent causalement l'état courant)
Le journal est sauvegardé périodiquement sur support stable!
Graphe contenu dans les messages (piggybacking)
Graphe utilisé pour "guider" la reprise des processus!
Faute => risque de perdre une partie du journal!
P1
Reprise en cascade!
P2
+ Asynchronisme (meilleures performances)!
- Possibilité d’effet domino
•
•
•
m1
m2
m5
m6
m4
m3
P3
Max. état recouvrable
m7
•
•
m1
m2
m5
Graphe sur P1 après réception m5
m3
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
Introduction
Non coordonné
Coordonné
m4
Journalisation
Conclusion
41!
42!
Comparaison de stratégies (extrait de [Elnozahy 97])!
Non
coordonnés!
Coordonnés!
Journalisation
optimiste!
Journalisation
causale!
Non!
Non!
Non!
Oui!
Oui!
Oui!
Surcoût Comm.!
Faible!
Aucun!
Surcoût
Sauvegarde!
Faible!
Le plus élevé!
Elevé!
Elevé!
Faible!
Le + élevé!
Faible!
Faible!
Faible!
Faible!
Nb de pts de
reprise!
Plusieurs!
1!
1!
1!
Plusieurs!
1!
GC!
Complexe!
Simple!
Simple!
Simple!
Complexe!
Complexe!
Reprise!
Hyp. PWD!
Coordonnés
implicites!
Journalisation
pessimiste!
Tolérance aux fautes et large échelle!
Complexe!
Simple!
Simple!
Simple!
Complexe!
Complexe!
Effet domino!
Possible!
Impossible!
Impossible!
Impossible!
Impossible!
Impossible!
Extension
reprise!
Illimitée!
Dernier
checkpoint!
Dernier
checkpoint!
Minimum!
Checkpoints
précédents!
Dernier
checkpoint!
Impossible!
Très lent!
Très lent!
Le plus rapide!
Lent!
Rapide!
"Output commit"!
Introduction
Non coordonné
Coordonné
Journalisation
La plupart des plates-formes sont peu adaptées au large échelle!
 Eloignement => Forte latence des protocoles !
 Nombre de sites => Coût en ressources (réseau)!
 Dynamicité => Approche statique (stratégie figée ou guidée
par l'utilisateur)!
 Topologie => Partitionnement!
Modèle de faute restreint (crash, recovery)!
 Tendance à élargir vers fautes byzantines (dans P2P)!
 Outils : librairie BFT, pb très coûteux !!
Conclusion
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
43!
44!
Point de reprise pour les Grilles!
Bibliographie
[Alvisi 93]
L. Alvisi, B. Hoppe, K. Marzullo. Nonblocking and Orphan-Free Message Logging Protocols. Proc. of the
23rd International Symposium on Fault-Tolerant Computing (FTCS 23), pp. 145-154, Toulouse, France 1993.
Approche hiérarchique utilisée dans ProActive (Thèse de C. Delbé)!
[Agbaria06] A. Agbaria. Improvements and Reconsideration of Distributed Snapshot Protocols. In Proceedings of the 25th
Symposium on Reliable Distributed Systems (SRDS'06). pp. , October 2006, Leeds, UK
[Borg 89]
A. Borg, W. Blau, W. Graetsch, F. Herrmann, W. Oberle. Fault Tolerance Under UNIX. ACM Transaction
on Computer Systems, 7(1):1-24, février 1989.
•  Utilisation de groupe de recouvrement [Sistla et Welch] :!
–  1 groupe par cluster!
–  Groupe = unité de reprise!
[Fischer 85] M.J. Fischer, N.A. Lynch, M.S. Paterson. Impossibility of Distributed Consensus with One Faulty Process.
Journal of the ACM 32(2):374-383, 1985.
[Johnson 90]
D.B. Johnson, W. Zwaenepoel, Recovery in Distributed Systems using Optimistic Message Logging
and Checkpointing. Journal of Algorithms, 11(3):462-491, septembre 1990.
[Elnozahy 96]
E.N. Elnozahy, D.B. Johnson, Y.M. Wang. A survey of Rollback-Recovey Protocols in
Message-Passing Systems. Technical Report. CMU-CS-96-181.
[Koo 87]
Richard Koo, Sam Toueg. Checkpoint ing and Rollback-recovery for Distributed Systems. IEEE
Transactions on Software Engineering, SE-13(1):23-31, janvier 1987.
•  Point de reprise coordonné au sein d’un groupe!
[Sens 98]
P. Sens, B. Folliot. The STAR Fault Tolerant Manager. Software Practice and Experience, Aout 1998.
[Wang 92]
Y.M. Wang, W.F. Fuchs. Optimistic Message Logging for Independent Checkpointing in Message-Passing
Systems. Proc. of the IEEE 11th Symposium on Reliable Distributed Systems, pp. 147-154, octobre 1992.
•  Journalisation des messages inter-groupes!
[Wang 93]
Y.M. Wang, W.K. Fuchs. Lazy Coordination for Bounding Rollback Propagation. Proc. of the 12th
Symposium on Reliable Distributed Systems, pp.78-85, octobre 1993.
[Netzer 95] R.H.B. Netzer, J. Xu. Necessary and Sufficient Conditions for Consistent Global Snapshots. IEEE Trans.
on Parallel and Distributd Systems
Introduction
Non coordonné
Coordonné
Journalisation
Conclusion
[Hélary 98] Hélary, A. Mostefaoui, M. Raynal. Points de Contrôle cohérents dans les systèmes répartis :
concepts et protocoles. TSI 17,10, 1998
45!
Quelques "pointeurs"
Manetho :
http://www.cs.cmu.edu/People/mootaz/manetho.html
Libckpt :
http://www.cs.utk.edu/~plank/plank/www/libckpt.html
Algorithmes :
http://www.cs.utexas.edu/users/lorenzo
http://www.irisa.fr/adept/index.html!
http://www.dis.uniroma1.it/~baldoni/publications.shtml!
MPICH-V :
http://mpich-v.lri.fr