Upload
bedoier-michaux
View
105
Download
2
Tags:
Embed Size (px)
Citation preview
Master Recherche Informatique
08.03.2005 Vincent Gramoli
RAMBO IIIAccélérer la Reconfiguration d’un Service de Mémoire Atomique en systèmes distribués
Vincent Gramoli, IRISAAdvisor: Alex Shvartsmanhttp://www.cse.uconn.edu/~gramoli/Dept. Computer Science & Engineering - University of ConnecticutLaboratoire de Recherche en Informatique - Universite Paris XI Orsay
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
2
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
3
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
4
AtomicitéAu sens de Linéarisabilité
Définition : Chaque opération apparaît comme ayant lieu à un instant situé entre son invocation et sa réponse.
Condition suffisante : Pour chaque objet, toute opération peut-être partiellement ordonnée par < telle que :
1. Aucune opération n’a une infinité d’opérations ordonnées avant elle.
2. < est cohérent avec l’ordre d’invocation-réponse.3. Toutes les opérations d’écriture sont totalement ordonnées
et les opérations de lecture sont ordonnées entre les opérations d’écriture.
4. Toute opération de lecture renvoie la valeur écrite par la dernière opération d’écriture la précédant selon l’ordre <.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
5
Motivations On veut assurer l’atomicité
des opérations sur l’objet. On réplique les objets sur
plusieurs nœuds afin de pallier aux éventuelles pannes.
Mémoire partagée rapidement reconfigurable
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
6
Motivations
Opération 1 Opération 2
On veut assurer l’atomicité des opérations sur l’objet.
On réplique les objets sur plusieurs nœuds afin de pallier aux éventuelles pannes.
On utilise des ensembles de nœuds intersectés (quorums) pour assurer que l’information est propagée.
Mémoire partagée rapidement reconfigurable
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
7
Motivations On veut assurer l’atomicité
des opérations sur l’objet. On réplique les objets sur
plusieurs nœuds afin de pallier aux éventuelles pannes.
On utilise des ensembles de nœuds intersectés (quorums) pour assurer que l’information est propagée.
Une nouvelle configuration est choisie par consensus pour pallier à l’accumulation des pannes
Mémoire partagée rapidement reconfigurable
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
8
ObjectifContexte et problématique
Service de mémoire atomique Cohérent
• Utilisation de quorums (ensembles intersectés)
Hautement Disponible• Réplication des données
Tolérant aux fautes• Reconfiguration rapide
Application Opérations militaires
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
9
Domaine
Quorum reconfigurable [UW87] Collection d’ensembles intersectés. [ABD96] Emulation de mémoire partagée multi-reader
single-writer en passage de message. [LS97] Quorum + reconfiguration [ES00] Dynamisme dans les configurations [LS02] Reconfigurable Atomic Memory for Basic Objects [GLS03] RAMBO II
Paxos [Lam88] TR [Lam98] Part-Time Parliament De Prisco MS thesis 2000. Formalisation (De Prisco et al. 2002)
Travaux antérieurs
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
10
Contributions
Précédentes versions Installation d’une nouvelle configuration basée sur un
service externe Désinstallation
RAMBO III Intègre Paxos à RAMBO pour l’installation :
• Cohérence des configurations• Ordre total sur les configurations
Parallélise la désinstallation • Reconfiguration accélérée
Tolérance aux défaillances accrues.
Reconfiguration
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
11
Modèle
Structure Ensemble de nœuds interconnectés.
Communication Asynchrone Perte éventuelle de messages Réordonnancement possible des messages Pas de duplication de message
Pannes Départs Arrivées Pannes crash
Dans la suite, on s’intéressera uniquement aux opérations de lecture/écriture et reconfiguration et non aux opérations de join.
Systèmes distribués dynamiques
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
12
Opérations sur un objet
Ensemble de membres possédant une valeur de l’objet.
Déroulement en 2 phases (échanges de messages) successives :
1. Collecter les valeurs d’un ensemble de noeuds, R,
2. Propager la valeur à jour à un second ensemble de noeuds, W.
(les deux ensembles s’interséctant R W ≠ Ø)
Un tag est associé à chaque valeur et ordonne les opérations (ordre total sur écritures).
Lecture et Écriture
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
13
Reconfiguration
Une configuration renseigne sur les noeuds qu’une opération doit contacter.
La reconfiguration se déroule en 2 étapes : Ajout d’une nouvelle configuration ( 2 phases). Retrait d’anciennes configurations (2 phases).
Changer de configuration
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
14
Opération durant Reconfiguration
Quasi-Indépendance L’opération ou la reconfiguration peuvent s’effectuer à
tout moment.
Quasi-Transparence L’une ne met pas l’autre en attente.
La reconfiguration oblige l’opération à contacter davantage de noeuds.
Dynamiser les opérations
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
15
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
16
DéfinitionsTypes
I ℕ, un ensemble infini de localisations pour les participants,
C ℕ, l’ensemble des identifiants de configuration,
X, l’ensemble des objets du système.
V, l’ensemble des valeurs possibles d’un objet.
T ℕ I, l’ensemble des tags.
On considère ici le système pour un seul objet.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
17
Définitions
Une configuration associée à l’objet est Un ensemble de membres members (réplicas). Un ensemble de quorums de lecture QR,
Un ensemble de quorums d’écriture QW.
Propriété des quorums :
Ra QR, Wb QW, Ra Wb ≠ Ø
Une séquence des configurations, notée cmap, associe à un indice, un identifiant de configuration, ±
(retirée) ou ┴ (inconnue);
initialement cmap = avec c0 C, l’id de la configuration par défaut.
Configurations
c0 ┴ ┴ ┴ ┴ …
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
18
Cohérence de nouvelle configurationUtilisation du consensus
Une nouvelle configuration doit être cohérente : Accord:
i, j I, cmap(k)i, cmap(k)j C cmap(k)i = cmap(k)j
Validité : Toute configuration de la séquence a été proposée. Unicité :
i, j I, cmap(k)i = cmap(l)j C k = l
On utilise un algorithme de consensus, Paxos, pour installer une nouvelle configuration cohérente à la séquence.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
19
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
20
Consensus
Paxos est un algorithme de consensus basé sur une élection de leader
Il assure les propriétés de validité et d’accord lorsqu’il termine. Sa terminaison est retardée lorsque des conflits ont lieu entre
plusieurs pseudo-leaders. Lorsque le système stabilise, un leader décide bien d’un
référendum.
Solution sous hypothèses
3 Règles : Référendums uniques et ordonnés i,j : Qi Qj ≠ Ø
Si e Qi alors
Si Bj = max{Bk: Bk<Bi}
e votej alors di = dj
Référendum (Ballot) : 1 identifiant « Bi » 1 décret « di » 1 quorum « Qi » Un ensemble de votants
« votei »
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
21
Algorithme
1ère phase : Création d’un référendum Le leader demande à un ensemble de noeuds la
plus grande valeur votée.
Quand un quorum répond, le leader associe la plus grande valeur à son référendum (ou une nouvelle).
3ème phase : Propagation de décision La valeur décidée est propagée.
Trois phases minimum
2nde phase : Proposition et vote Le leader propose son référendum.
Il attend le vote d’un quorum
Lorsqu’un nœud reçoit la demande il s’abstient vis-à-vis d’anciens référendums et répond, ou ignore la demande.
Un nœud peut voter s’il ne s’est pas abstenu pour ce référendum dans le passé.
Les deux dernières phases sont répétées en cas de non décision
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
22
Algorithme
Élection de leader On suppose l’existence d’un algorithme de pseudo-élection de leader.
Conflits En cas de plusieurs leaders, un référendum postérieur peut entraîner des abstentions au précédent référendum.
Progression Un timeout nous permet de suggérer à l’algorithme de continuer lorsque la décision ne semble pas prise.
Terminaison Lorsque le temps des opérations est raisonnablement court et qu’il n’y a plus de panne, un leader décide bien d’un référendum.
Caractéristiques
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
23
ExécutionExemple
αδε
Référendum Décret Quorum
B1 d1
B2 d2
B3 d1
βγε
αγδ
Exemple: 3 référendums sont successivement
proposés: B1, B2, B3
Sur la même ligne est représenté son décret et son quorum associé.
Un quorum est constitué de 3 éléments.
Un élément qui vote pour le référendum situé sur sa ligne est encadré.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
24
Adaptation[De Prisco, Lynch, Shvartsman, Immorlica, Win 2003]
Le décret d’un référendum est une configuration. L’initialisation d’un référendum est gérée par un
composant externe (Le BallotTrigger). Un référendum n’est plus éligible lorsque tout élément
d’un quorum de lecture s’est abstenu. La configuration choisie est la plus grande encore
éligible (ou une nouvelle). Un référendum est voté, et sa configuration décidée
lorsque tout élément d’un quorum d’écriture a voté.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
25
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
26
Observations L’installation d’une configuration rend d’autres obsolètes [RAMBO] L’installation et la désinstallation sont séquentielles. [RAMBO II] Pourquoi ne pas paralléliser les deux étapes : l’installation et la désinstallation. [RAMBO III]
Installation vs. DésinstallationComparaison
Quorum
ack
config.
vote
prop
Quorum
query
tagParticipant
prop
Participant
Piggybacker les messages
Conséquence directe La reconfiguration est significativement accélérée (#phase - 2).
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
27
Reconfiguration accélérée
Condition: Le leader i a ck-1 pour configuration courante et cmap(l)i ┴ ( l k-1)
1ère phase : Création d’un nouveau référendum Le leader i prend connaissance des dernières configurations
(pour l’indice k) votées éligibles et choisit celle de son référendum en fonction.
2nde phase : Proposition et vote Le leader i propose son référendum, Attend le vote d’un W de ck et un ack d’un R W des cl ( l
k ). Décide le référendum.
3ème phase : Propagation de décision Le leader i ajoute la configuration décidée à son cmapi, Supprime les configurations obsolètes en modifiant son cmapi, Propage son cmapi.
Décision via Paxos
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
28
Problème en cas de désinstallation dans la phase de décision1) L’opération d’écriture contacte un R de ck
2) La reconfiguration s’effectue ajoutant ck+1 et supprimant ck
3) L’opération d’écriture contacte un W de ck
4) Perte d’information
C’est pourquoi on supprime ck en installant ck+2 et non ck+1
Autres approches: Un round supplémentaire pour une configuration unique. Amélioration d’une phase en ralentissant les opérations de lectures / écritures
Configurations à desinstallerConfigurations obsolètes
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
29
Protocole de reconfigurationÉvolution incrémentale de la séquence de configurations
c0 ┴ ┴ ┴ …┴ ┴
c0 c1 ┴ ┴ ┴ ┴
± c1 c2 ┴ ┴ ┴
± ± c2 c3 ┴ ┴
…
…
…
Initialement
Après une première reconfiguration
Après une seconde reconfiguration
Après une troisième reconfiguration
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
30
Protocole de reconfigurationDifférentes séquences de configurations
Deux nœuds i et j peuvent avoir des cmap différents. Les messages échangés en arrière plan propagent les
cmap. Chaque nœud update son cmap(k)i avec le cmap(k)j
reçus: cmapi’ = update(cmapi, cmapj)
k, cmap(k)i’ = max(cmap(k)i, cmap(k)j), tel que c C, ┴ c ±
± ┴ ┴
± ± cl ┴
ck± ck+1… …
…
…
…cl+1
update
cmapj
cmapi
cmapi’
± ± cl ┴… …cl+1
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
31
Configurations intermédiairesC = C1 U C2
(R3 W1 ≠ Ø) & (R2’ W3’) ≠ Ø
(R3 R2’) (W1 W3’) ≠ Ø
L’union de deux configurations est une configuration (configuration intermédiaire [Englert, Shvartsman 2000]).
± ± c2 c3 ┴ ┴ … ± ± c2’ ┴ ┴ …
c3’ ┴ …± ± ±± ± c3 c4 ┴ …±
Configuration C'Configuration C
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
32
Opérations concurrentesDifférences entre séquences des configurations
Le protocole de reconfiguration assure Toute configuration garde un pointeur sur la
suivante. Ainsi, une opération apprend à son initiateur des
configurations plus à jour (s’il y en a). L’opération est donc éventuellement prolongée.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
33
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
34
Opérations en deux phasesDemande et Propagation
Chaque nœud peut initier une opération. Chaque message contient t T, t = <t.nb, t.id>
(initialement <0, id> ) le tag de la dernière écriture connue (t.id l’id de l’initiateur), v V (initialement v0) la valeur de l’objet associée et le cmapi.
Le leader étend son op.cmapi avec les nouvelles configurations lors de réception des messages.
Des identifiants de phases permettent de différencier ces messages.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
35
Opérations en deux phasesDemande et Propagation
Un ordre sur les tags est défini avec l’id comme entier de poids faible.
t1, t2 T, (t1 > t2) (t1.nb > t2.nb) ou (t1.nb = t2.nb) et (t1.id > t2.id) Demande
L’initiateur i copie son cmapi dans op.cmapi et envoie des messages aux participants.
Attend la réponse d’un quorum de lecture de chaque configuration de son op.cmapi
Soit t’ le plus grand tag reçu et v’ sa valeur associée.• En cas de lecture, choisit t’’=t’ et v’’ = v’. • En cas d’écriture, choisit v’’ = v et t’’ = <++t’.nb, i>
Propagation Envoie des messages aux participants. Attend la réponse des éléments d’un quorum d’écriture de toute
configuration de son op.cmapi
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
36
Un quorum comme point fixeExemple avec une seule configuration
Fig1 - Demande des valeurs et tags de R3
Fig2 - Propagation de la nouvelle valeur et du nouveau tag à W1
Exemple d’opération : Fig1 et Fig2 représentent la même configuration Les cercles représentent les noeuds membres. Les colonnes sont des quorums de lecture (R1, R2, R3). Les lignes sont des quorums d’écriture (W1, W2, W3). Un nœud extérieur au quorum système initie l’opération.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
37
Plan
Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
38
L’atomicité est assurée en dépit de Asynchronie, Crashs, Pertes de message.
Hypothèses Toute lecture / écriture termine. On associe un tag à chaque reconfiguration et opération, celui choisit entre la phase de demande et celle de propagation.
On compare l’ordre sur reconfigurations et opérations.
PréliminairesHypothèses et Objectif
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
39
Lemme 1 : Soient γk, γl deux reconfigurations telles que l k, alors
tag(γl) tag(γk) (k>0).
Lemme 2 : Si la reconfiguration γk termine avant que l’opération de
lecture/écriture π soit initiée par i, alors tag(γk) tag(π) (et < tag(π) si π est une écriture).
Lemme 3 : Si la lecture/écriture π1 exécutée en i termine avant que la lecture/écriture π2 exécutée en j commence alors tag(π2) tag(π1) (et > tag(π1) si π2 est une écriture).
Propagation de l’informationEntre opérations et reconfigurations
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
40
Ordre PartielOpérations ordonnées
1. D’après la propriété 2, une infinité d’opérations ordonnées avant une autre impliquerait une infinité de celles-ci ayant terminé avant.
2. Une opération terminant avant une autre n’est pas ordonnée après (Lemme 3).
3. Les écritures sont totalement ordonnées par leur tag, les tags étant différents pour chacune.
4. Une lecture renvoyant le tag t est ordonnée entre toute écriture de tag t’ t et toute écriture de tag t’’>t.
08.03.2005 Master Recherche Informatique
RAMBO III - Accélérer la reconfiguration d’un service de mémoire atomique en systèmes distribués
41
Conclusion Contributions
Intégration de Paxos dans RAMBO. Maintient de l’atomicité des opérations. Accélération de l’opération de reconfiguration de RAMBO. Tolérance aux défaillances accrue.
Nouveaux Travaux Analyse de la progression de l’algorithme. Implémentation. Étude du trade-off latence des opérations vs. latence
reconfiguration. Perspectives
P2P-RAMBO
Plus d’infos: http://www.cse.uconn.edu/~gramoli/