41
Master Recherche Informatique 08.03.200 5 Vincent Gramoli 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

Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

Embed Size (px)

Citation preview

Page 1: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 2: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 3: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 4: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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 <.

Page 5: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 6: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 7: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 8: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 9: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 10: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 11: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 12: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 13: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 14: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 15: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 16: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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.

Page 17: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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 ┴ ┴ ┴ ┴ …

Page 18: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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.

Page 19: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 20: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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 »

Page 21: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 22: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 23: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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é.

Page 24: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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é.

Page 25: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 26: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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).

Page 27: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 28: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 29: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 30: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 31: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 32: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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.

Page 33: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 34: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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.

Page 35: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 36: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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.

Page 37: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 38: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 39: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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

Page 40: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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.

Page 41: Master Recherche Informatique 08.03.2005Vincent Gramoli RAMBO III Accélérer la Reconfiguration dun Service de Mémoire Atomique en systèmes distribués Vincent

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/