RAMBO III Accélérer la Reconfiguration d’un Service de Mémoire Atomique en systèmes distribués Vincent Gramoli, IRISA Advisor: Alex Shvartsman http://www.cse.uconn.edu/~gramoli/ Dept. Computer Science & Engineering - University of Connecticut Laboratoire de Recherche en Informatique - Universite Paris XI Orsay 08.03.2005 Vincent Gramoli
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
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 : Aucune opération n’a une infinité d’opérations ordonnées avant elle. < est cohérent avec l’ordre d’invocation-réponse. 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. Toute opération de lecture renvoie la valeur écrite par la dernière opération d’écriture la précédant selon l’ordre <. Atomicité au sens de linearizabilite (cf. Herlihy) 08.03.2005 Master Recherche Informatique
Motivations Mémoire partagée rapidement reconfigurable 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. Emulation de memoire partagee. Replication, tolerance aux pannes. 08.03.2005 Master Recherche Informatique
Motivations Mémoire partagée rapidement reconfigurable 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. Les phases des operations utilisent les quorums. Propagation de l’information d’une operation a l’autre. Linearizabilite des operations. Opération 1 Opération 2 08.03.2005 Master Recherche Informatique
Motivations Mémoire partagée rapidement reconfigurable 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 Noeud a nouveau actif = un arrivant Accumulation de departs/pannes Reconfiguration = redefinition des points fixes des operations. 08.03.2005 Master Recherche Informatique
Objectif Service de mémoire atomique Application Contexte 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 Resume des objectifs a atteindre. Exemple d’application : entites militaires distantes pouvant mettre a jour et/ou consulte une donnee partagee. 08.03.2005 Master Recherche Informatique
Domaine Travaux antérieurs Quorum reconfigurable Paxos [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) 08.03.2005 Master Recherche Informatique
Contributions Reconfiguration Précédentes versions RAMBO III 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. 08.03.2005 Master Recherche Informatique
Modèle Systèmes distribués dynamiques Structure Communication Pannes 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. 08.03.2005 Master Recherche Informatique
Opérations sur un objet Lecture et Écriture Ensemble de membres possédant une valeur de l’objet. Déroulement en 2 phases (échanges de messages) successives : Collecter les valeurs d’un ensemble de noeuds, R, 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). 08.03.2005 Master Recherche Informatique
Reconfiguration Changer de configuration 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). 08.03.2005 Master Recherche Informatique
Opération durant Reconfiguration Dynamiser les opérations 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. 08.03.2005 Master Recherche Informatique
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
Définitions Types 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
Définitions Configurations 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. c0 ┴ ┴ ┴ ┴ … 08.03.2005 Master Recherche Informatique
Cohérence de nouvelle configuration Utilisation 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
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
Consensus Solution sous hypothèses 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. 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
Algorithme Trois phases minimum 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). 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. 2nde phase : Proposition et vote Le leader propose son référendum. Il attend le vote d’un quorum Un nœud peut voter s’il ne s’est pas abstenu pour ce référendum dans le passé. 3ème phase : Propagation de décision La valeur décidée est propagée. Les deux dernières phases sont répétées en cas de non décision 08.03.2005 Master Recherche Informatique
Algorithme Caractéristiques Élection de leader Conflits Progression 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. 08.03.2005 Master Recherche Informatique
Exécution Exemple β γ ε Référendum Décret Quorum Exemple: B1 d1 α δ ε 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é. B1 d1 α δ ε Regle 3 de Paxos : Toute proposition suivant la decision prendra d1 comme valeur du fait de l’intersection des quorums. Stabilite de la decision. β γ ε B2 d2 B3 d1 α γ δ 08.03.2005 Master Recherche Informatique
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
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
Installation vs. Désinstallation Comparaison 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] ack Piggybacker les messages query config. Participant Quorum tag vote Participant Quorum prop prop Conséquence directe La reconfiguration est significativement accélérée (#phase - 2). 08.03.2005 Master Recherche Informatique
Reconfiguration accélérée Décision via Paxos 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. 08.03.2005 Master Recherche Informatique
Configurations à desinstaller Configurations obsolètes Problème en cas de désinstallation dans la phase de décision L’opération d’écriture contacte un R de ck La reconfiguration s’effectue ajoutant ck+1 et supprimant ck L’opération d’écriture contacte un W de ck 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 08.03.2005 Master Recherche Informatique
Protocole de reconfiguration Évolution incrémentale de la séquence de configurations Initialement Après une première reconfiguration Après une seconde reconfiguration Après une troisième reconfiguration c0 ┴ ┴ ┴ ┴ ┴ … c0 c1 ┴ ┴ ┴ ┴ … ± c1 c2 ┴ ┴ ┴ … ± ± c2 c3 ┴ ┴ … 08.03.2005 Master Recherche Informatique
Protocole de reconfiguration Diffé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 cl+1 ┴ … cmapj cmapi ± … ± ck ck+1 ┴ … ┴ … update ± … ± cl cl+1 ┴ … cmapi’ 08.03.2005 Master Recherche Informatique
Configurations intermédiaires C = C1 U C2 Configuration C Configuration C' (R3 W1 ≠ Ø) & (R2’ W3’) ≠ Ø (R3 R2’) (W1 W3’) ≠ Ø L’union de deux configurations est une configuration (configuration intermédiaire [Englert, Shvartsman 2000]). ± ± c2’ ┴ ┴ … ± c2 c3 ┴ … ± ± ± c3 c4 ┴ … ± ± ± c3’ ┴ … 08.03.2005 Master Recherche Informatique
Opérations concurrentes Diffé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
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
Opérations en deux phases Demande 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
Opérations en deux phases Demande 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
Un quorum comme point fixe Exemple avec une seule configuration 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. Fig1 - Demande des valeurs et tags de R3 Fig2 - Propagation de la nouvelle valeur et du nouveau tag à W1 08.03.2005 Master Recherche Informatique
Plan Introduction Séquence de configuration Paxos Reconfiguration Opérations Idée de preuve Conclusion 08.03.2005 Master Recherche Informatique
Préliminaires Hypothèses et Objectif 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. 08.03.2005 Master Recherche Informatique
Propagation de l’information Entre opérations et reconfigurations 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). 08.03.2005 Master Recherche Informatique
Ordre Partiel Opérations ordonnées 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. Une opération terminant avant une autre n’est pas ordonnée après (Lemme 3). Les écritures sont totalement ordonnées par leur tag, les tags étant différents pour chacune. Une lecture renvoyant le tag t est ordonnée entre toute écriture de tag t’ t et toute écriture de tag t’’>t. Ici on reprend les 4 conditions pour l’atomicite. 08.03.2005 Master Recherche Informatique
Conclusion Contributions Nouveaux Travaux Perspectives 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/ 08.03.2005 Master Recherche Informatique