7
Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/people/krakowia Validation atomique École Doctorale de Grenoble Master 2 Recherche “Systèmes et Logiciel” 2 © 2003-2004, S. Krakowiak Motivation et objectifs ! Exécution de transactions réparties " Les transactions sont un outil de base pour la tolérance aux fautes " Transaction = suite d’actions A = (A 1 ; A 2 ; … ; A n ) possédant les propriétés ACID # Atomicité, Cohérence, Isolation, Durabilité (persistence) " Dans une application répartie, les actions peuvent s’exécuter sur des sites différents, d’où nécessité d’une coordination ! Validation " La validation (opération commit) est une opération clé de l’exécution d’une transaction (elle rend les modifications définitives) " Nous allons examiner comment cette opération est réalisée dans un système réparti " Intérêt # pratique (réalisation de transactions réparties) # théorique (résultats d’impossibilité ; relations avec autres protocoles) 3 © 2003-2004, S. Krakowiak Plan ! Introduction à la validation " Préambule sur la communication " Spécification du problème ! Solutions “historiques” " Validation à deux phases : le problème du blocage " Validation à trois phases ! Solutions utilisant la diffusion " Spécification du protocole de diffusion (UTRB) " Réalisation de la validation " Réalisation du protocole de diffusion ! [à voir plus tard] Relations entre validation et consensus 4 © 2003-2004, S. Krakowiak ! Un premier résultat d’impossibilité " Si le système de communication perd des messages de manière indétectable, il est impossible de réaliser un protocole d’accord en un nombre fini d’étapes ! Le problème de l’attaque coordonnée Préambule : le “paradoxe des généraux” (1) A ! B : message 36 : on attaque demain à 5h00 B ! A : bien reçu 36 A ! B : bien reçu bien reçu 36 A (1500) C (2 000) B (1500) J. Gray, Notes on Database Operating Systems, in Operating Systems, An Advanced Course, Lecture Notes in Computer Science, nr 60, Springer-Verlag (1978)

Validation Atomique

Embed Size (px)

DESCRIPTION

Validation atomique

Citation preview

  • Sacha KrakowiakUniversit Joseph Fourier

    Projet Sardes (INRIA et IMAG-LSR)

    http://sardes.inrialpes.fr/people/krakowia

    Validation atomique

    cole Doctorale de GrenobleMaster 2 Recherche Systmes et Logiciel

    2 2003-2004, S. Krakowiak

    Motivation et objectifs

    ! Excution de transactions rparties" Les transactions sont un outil de base pour la tolrance aux fautes" Transaction = suite dactions A = (A1 ; A2 ; ; An) possdant les

    proprits ACID# Atomicit, Cohrence, Isolation, Durabilit (persistence)

    " Dans une application rpartie, les actions peuvent sexcuter surdes sites diffrents, do ncessit dune coordination

    ! Validation" La validation (opration commit) est une opration cl de

    lexcution dune transaction (elle rend les modificationsdfinitives)

    " Nous allons examiner comment cette opration est ralise dansun systme rparti

    " Intrt# pratique (ralisation de transactions rparties)# thorique (rsultats dimpossibilit ; relations avec autres

    protocoles)

    3 2003-2004, S. Krakowiak

    Plan

    ! Introduction la validation" Prambule sur la communication

    " Spcification du problme

    ! Solutions historiques" Validation deux phases : le problme du blocage

    " Validation trois phases

    ! Solutions utilisant la diffusion" Spcification du protocole de diffusion (UTRB)

    " Ralisation de la validation

    " Ralisation du protocole de diffusion

    ! [ voir plus tard] Relations entre validation et consensus

    4 2003-2004, S. Krakowiak

    ! Un premier rsultat dimpossibilit" Si le systme de communication perd des messages de manire

    indtectable, il est impossible de raliser un protocole daccord enun nombre fini dtapes

    ! Le problme de lattaque coordonne

    Prambule : le paradoxe des gnraux (1)

    A ! B : message 36 : on attaque demain 5h00B ! A : bien reu 36A ! B : bien reu bien reu 36

    A (1500)

    C (2 000)

    B (1500)

    J. Gray, Notes on Database Operating Systems, in Operating Systems, An Advanced Course,Lecture Notes in Computer Science, nr 60, Springer-Verlag (1978)

  • 5 2003-2004, S. Krakowiak

    Le paradoxe des gnraux (2)

    Il nexiste pas de protocole rsolvant le problme de laccord avecun nombre fini de messages si la communication nest pas fiable

    Supposons quil existe de tels protocoles, et considrons celui qui raliselaccord en utilisant le nombre de message minimal, soit n

    Supposons que le dernier message soit de B vers A : A ! B : messagen1B ! A : messagen

    Puisque B ne recevra plus de messages, B a pris une dcision avantlenvoi de messagen

    Puisque le protocole doit fonctionner en cas de perte de messages, ladcision de A ne doit pas dpendre du contenu de messagen

    Mais alors messagen ne sert rien, et on peut le supprimer.Ceci est contradictoire avec le fait que le protocole est minimal.

    6 2003-2004, S. Krakowiak

    Le paradoxe des gnraux (3)

    Comment vivre avec dans la pratique ?

    Rappelons lhypothse de dfaillance : le systme de communicationperd des messages de manire indtectable

    En pratique, on essaie de dtecter la perte de messages, soit par signaldu systme de communication lmetteur, soit en gnral au moyendun dlai de garde sur laller-retour (hypothse de synchronisme)

    Exemple concret : laccord confirm

    Le protocole dtablissement de liaison de TCP utilise laccord confirm(3 messages) :

    A ! B : demandeB ! A : accordA ! B : accord confirm

    Chaque partenaire voit donc un aller-retour

    7 2003-2004, S. Krakowiak

    Le problme de la validation (commitment)

    ! Motivations" Pour terminer une transaction, il faut dcider de son issue!: validation

    (commit) ou annulation (abort)

    " La validation rend les modifications dfinitives!; lannulation ramne lesprocessus leur tat avant transaction (proprit datomicit)

    " La dcision est prise linitiative dun participant quelconque, et doitvrifier diffrentes proprits (cf plus loin) pour satisfaire aux spcificationsdes transactions

    ! Hypothses" La communication est fiable (messages dlivrs sans altration)!et

    synchrone (une borne est connue sur le temps de transmission desmessages, ainsi que sur les vitesses relatives des processus)

    N.B. il suffit de faire cette hypothse sur une dure couvrant celle de la transaction

    " Les processus peuvent subir des pannes franches. Un processus en pannepeut tre rpar et rintgrer la transaction. Un processus est dit correct silnest jamais tomb en panne

    " Chaque processus peut crire des donnes en mmoire stable, oupermanente, qui survit aux dfaillances

    8 2003-2004, S. Krakowiak

    Spcifications de la validation

    Chaque processus contribue la dcision par un vote (OUI ou NON). Unprocessus qui vote OUI est prt rendre permanentes ses modifications. Leprotocole doit avoir les proprits suivantes :

    Validit : La dcision est soit valider, soit annuler

    Intgrit : Tout processus dcide au plus une fois (une dcision estdfinitive)

    Accord uniforme : Tous les processus (corrects ou non) qui dcidentprennent la mme dcision

    Justificationx : Si la dcision est valider, alors il y a au moins x processusqui ont vot OUI [diffrentes variantes du protocole selon choix de x ; enpratique, x = n (le nombre total de processus)]

    Obligationx : Si x processus votent OUI, et si ces x processus sontcorrects, alors la valeur dcide est valider [en pratique x = n]

    Terminaison : tout processus correct dcide au bout dun temps fini

  • 9 2003-2004, S. Krakowiak

    Remarques sur les spcifications

    Les dcisions valider et annuler ne sont pas symtriques. Il nest pasncessaire que tous les processus aient vot NON pour dciderdannuler

    Limplication de la proprit de justification nest pas symtrique : ladcision dannuler peut tre prise mme si tous les processus ontvot OUI

    Exemple : tous les processus ont vot OUI ; un processus tombe enpanne avant que la dcision de valider ne soit prise

    La proprit dobligation est ncessaire pour exclure les solutionstriviales (par exemple : tous les processus dcident toujoursdannuler)

    Lhypothse de la communication fiable et synchrone exclut lepartitionnement du rseau (le rseau est maintenu connexe malgrles pannes de site)

    10 2003-2004, S. Krakowiak

    Un peu dhistoire

    Solution initiale : Gray (1978), protocole de validation 2 phases (2-phasecommit, ou 2PC)

    Le protocole 2PC peut ne pas se terminer (mme avec communicationsynchrone). Recherche dun protocole de validation non bloquante (Non-Blocking Atomic Commitment, ou NBAC)

    Protocole de validation non bloquant 3 phases (3PC) (Skeen, 1982)

    Protocole non bloquant utilisant la diffusion uniforme temporise(Babaoglu - Toueg, 1992)

    Relations entre validation et consensus (dtails plus tard)

    La validation est plus difficile que le consensus, mais une forme plusfaible (pratiquement acceptable) de validation se ramne au consensus

    avec le protocole Paxos (Lamport)

    avec dtecteurs de pannes imparfaits (Chandra - Toueg)

    11 2003-2004, S. Krakowiak

    Protocole 2 phases (2PC)

    coordinateurp0

    coordinateurp0

    participantpi

    participantpiUn processus coordinateur interroge

    tous les processus (participants)Chaque participant envoie son voteau coordinateurQuand le coordinateur a reu tous lesvotes, il prend sa dcision :

    tous oui : validerautrement : annuler

    Le coordinateur envoie la dcision tous les participants ; chacun dcideconformment ce message

    enqute ?

    vote vote

    tousOUI

    pastousOUI

    valider annuler

    Noter que le coordinateur et chaque participant voient un aller-retour(dlai de garde utilisable)

    enqute ?

    ph. 1

    ph. 2

    temps

    12 2003-2004, S. Krakowiak

    2PC : dtection de dfaillances

    coordinateurp0

    participantpi

    enqute ?

    vote

    dlai de garde2" + #

    Coordinateur : si des rponsesmanquent aprs le dlai de garde,dcision = annuler(tous les sites nont pas vot OUI)

    coordinateurp0

    participantpi

    enqute ?

    vote

    dlai degarde 2" + T

    Participant : si lecoordinateur na pasrpondu aprs le dlai degarde, on suppose quilest en panne

    Le participant essaie de dterminer si unedcision a t prise, en interrogeant les autresparticipants (un autre participant peut avoirreu une rponse du coordinateur)

  • 13 2003-2004, S. Krakowiak

    2PC : scnario de blocage

    coordinateurp0

    participantpi

    enqute ?voteOUI

    zonedincertitude

    Entre le moment o il a vot OUI et le moment o ilreoit une rponse du coordinateur, un participantest dans une zone dincertitude (un autre participantpeut se trouver soit en phase de validation soit enphase dannulation, et les deux issues sont possibles)

    Cela peut conduire un scnario de blocage :

    pi a vot OUI et se trouve dans la zonedincertitude

    Le coordinateur tombe en panne aprs avoirenvoy une dcision valider ou annuler certains participants

    ces participants tombent en panne leur tour

    Une dcision a t prise mais pi (correct) na aucunmoyen de la connatre (au moins jusqu' un ventuelredmarrage du coordinateur)

    14 2003-2004, S. Krakowiak

    2PC : scnario de blocage (2)

    La possibilit de blocage provient de lincertitude sur ltat global(pas de connaissance partage)

    vot (OUI) vot (NON)dcidvalider

    dcidannuler

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    vot (OUI)

    vot (NON)

    dcidvaliderdcidannuler

    tat pi

    tat pj

    la suite dun vote OUI, toutes les possibilits restent ouvertes

    15 2003-2004, S. Krakowiak

    Protocole 3 phases (3PC)

    coordinateurp0

    coordinateurp0

    participantpi

    participantpi

    enqute ?

    vote vote

    tousOUI

    pastousOUI

    valider

    annuler

    enqute ?

    prparer

    ack

    tousack

    ph. 1

    ph. 1

    ph. 3

    Le coordinateur interroge les participants Chaque participant renvoie son vote Si la dcision est annuler, elle est envoye

    aux participants (comme en 2PC) Sinon, le coordinateur envoie prparer Chaque participant renvoie un

    acquittement Quand il a reu tous les acquittements, le

    coordinateur renvoie valider

    N.B. sil ny a pas de perte de messages,alors les acquittements sont redondants

    16 2003-2004, S. Krakowiak

    3PC : dtection de dfaillances

    Raction lcoulement du dlai de garde1. Dcider annuler2. lire un nouveau coordinateur3. Rien4. lire un nouveau coordinateur

    Le nouveau coordinateur interroge les participants certains annuls : dcider annuler certains valids : dcider valider tous incertains : dcider annuler certains prts mais aucun valid :

    reprendre lenvoi du message prparer

    coordinateurp0

    participantpi

    enqute ?

    vote

    valider

    prparer

    ack

    1

    2

    4

    Reprise aprs dfaillance si navait pas vot : annuler si avait dcid : continuer avec dcision prise si incertain : consulter autres participants

    3

    incertain

    valid

    prt

  • 17 2003-2004, S. Krakowiak

    3PC : connaissance partage

    Il ny a pas dtat o pi soit incertain (aprs vote OUI) et pj ait dcid valider.Le protocole 3PC introduit une connaissance partage.

    2PC : un processus qui dcide valider sait que tous ont vot OUI 3PC : un processus qui dcide valider sait (en outre) que tous savent

    que tous ont vot OUI

    vot (OUI) vot (NON)dcidvalider

    dcidannuler

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    possible

    vot (OUI)

    vot (NON)

    dcidvaliderdcidannuler

    tat pi

    tat pj

    prt

    prt

    possible

    possible

    possible

    possible

    possible

    18 2003-2004, S. Krakowiak

    Validation utilisant la diffusion

    ! Motivations" Le problme de la connaissance partage identifi dans 3PC peut

    tre abord en utilisant un protocole de diffusion" Il existe de nombreux protocoles de diffusion (tudis plus tard

    dans le cours). Les spcifications de chaque protocole doivent treadaptes aux hypothses de dfaillance et aux besoins spcifiquesdutilisation

    ! Dmarche" Dfinir un protocole gnrique de validation utilisant la diffusion

    # gnrique : acceptant un protocole de diffusion quelconque" Spcifier un protocole de diffusion ayant les proprits souhaites" Examiner la ralisation de la validation avec ce protocole" Examiner la ralisation du protocole de diffusion

    Un protocole gnrique de validation (1)

    Programme des participants (y compris initiateur)

    upon (receipt of [transaction, !c, participants])Cknow = local clock // perform operations requested by transactionif (willing and able to make updates permanent) then

    vote = YESelse

    vote = NO// decide commit or abort for the transactionatomic_commitment(transaction, participants)

    Schma densemble dune transaction

    Initialisation (par un processus quelconque)send [transaction, !c, participants] to all participants

    19

    . Babaoglu, S. Toueg, Non-blocking Atomic Commitment, in S. Mullender (ed.), Distributed Systems (2ndedition), Addison-Wesley, 1993

    Un protocole gnrique de validation (2)

    La structure est la mme quecelle du protocole 2PC

    Coordinator

    send [VOTE_REQUEST] to allset-timeout (local_clock + 2")wait-for (receipt of votes from all)

    if (all votes YES) thenbroadcast(commit, participants)

    else broadcast(abort, participants)on-timeout

    broadcast(abort, participants)

    Participant

    set-timeout (Cknow + $c + ")wait-for (receipt of VOTE_REQUEST from coord.)

    send (vote) to coordinatorif (vote = NO) then

    decide (abort)else

    set-timeout (Cknow + $c + 2" + $b )wait-for(delivery of decision messages)

    if (decision mess. is abort) thendecide (abort)

    else decide (commit)on-timeout // coordinator failed

    decide according to termin. protocolon-timeout

    decide (abort). Babaoglu, S. Toueg, Non-blocking AtomicCommitment, in S. Mullender (ed.), DistributedSystems (2nd edition), Addison-Wesley, 1993

    20

  • 21 2003-2004, S. Krakowiak

    Validation avec diffusion simple (1)

    Les proprits de lalgorithme de validation dpendent du protocole broadcastinsr dans le protocole gnrique

    Cas 1 : broadcast = diffusion simple (synchrone) : si un processus correct diffuse m, tous les processus destinataires corrects dlivrent m pour tout message m, tout destinataire dlivre m au plus une fois, et

    seulement si un processus a diffus m il existe une constante connue $b telle que si la diffusion a t lance au

    temps (physique) t, aucum message ne sera dlivr aprs t + $b

    Cette diffusion na pas la proprit tout ou rien (diffusion fiable). En cas depanne de lmetteur pendant la diffusion, un message peut tre dlivr certains destinataires seulement

    22 2003-2004, S. Krakowiak

    Validation avec diffusion simple (2)

    Le protocole de terminaison (raction la panne du coordinateur) tente dedterminer si une dcision a t prise en contactant les participantssurvivants.Sa terminaison en temps fini nest pas garantie

    Exemple (dj vu) : le coordinateur prend une dcision, la diffuse certains participants, puis

    tombe en panne ces participants tombent en panne leur tour

    En fait le protocole de validation qui utilise la diffusion simple nest autre que2PC

    Il faut renforcer les spcifications de l'algorithme de diffusion pour quil ait laproprit tout ou rien

    23 2003-2004, S. Krakowiak

    Validation avec diffusion fiable uniforme (1)

    Cas 2 : broadcast = diffusion fiable uniforme synchrone : si un processus correct diffuse m, tous les processus destinataires corrects dlivrent m pour tout message m, tout destinataire dlivre m au plus une fois, et

    seulement si un processus a diffus m il existe une constante connue $b telle que si la diffusion a t lance au

    temps (physique) t, aucun message ne sera dlivr aprs t + $b + accord uniforme

    si un processus (correct ou non) dlivre m, tous les processus correctsdlivrent m

    uniformit

    diffu

    sion

    sim

    ple

    Cette diffusion a la proprit tout ou rien (diffusion fiable). En cas de panne delmetteur pendant la diffusion, le message est dlivr tous les participants ou aucun. En outre luniformit garantit laccord entre tous les processus : si unprocessus a dcid avant de tomber en panne, tous les processus correctsdestinataires sont au courant de cette dcision. Donc le scnario de blocage estimpossible

    Validation avec diffusion fiable uniforme (2)

    Participant

    set-timeout (Cknow + $c + ")wait-for (receipt of VOTE_REQUEST from coord.)

    send (vote) to coordinatorif (vote = NO) then

    decide (abort)else

    set-timeout (Cknow + $c + 2" + $b )wait-for(delivery of decision messages)

    if (decision mess. is abort) thendecide (abort)

    else decide (commit)on-timeout

    decide (abort)on-timeout

    decide (abort)

    Le protocole du coordinateur estinchang (broadcast est maintenantla diffusion UTRB)

    Le protocole des participants estinchang, sauf pour le protocole determinaison (panne du coordinateur)devenu inutile : on dcide dannulercar on sait quaucune dcisioncontradictoire ne peut avoir t prise

    Le protocole de diffusion fiableuniforme synchrone est appelUTRB (Uniform Timed ReliableBroadcast)

    . Babaoglu, S. Toueg, Non-blocking AtomicCommitment, in S. Mullender (ed.), DistributedSystems (2nd edition), Addison-Wesley, 1993

    24

  • 25 2003-2004, S. Krakowiak

    Validation avec diffusion fiable uniforme (3)

    On peut dmontrer (cf Babaoglu & Toueg) que le protocole de validation utilisantla diffusion fiable uniforme synchrone (UTRB) satisfait aux spcifications de lavalidation, y compris labsence de blocage :

    Tout processus correct dcide

    On peut en outre prvoir le cas de restauration dun processus dfaillant(protocole de reprise). On peut ainsi assurer que :

    Tout participant au courant de la transaction dcide, condition de restervivant suffisamment longtemps (borne connue) aprs sa reprise surdfaillance

    Diffusion simple

    Diffusion simple dans un groupe G de processus(composition fixe)

    metteur :send (m) to all processes in Gdeliver (m)

    destinataire (" metteur) :upon (receipt of m)

    deliver (m)

    Pour conclure ltude de la validation, il reste fournir une ralisation desprotocoles de diffusion

    " diffusion simple

    " diffusion fiable uniforme synchrone (UTRB)

    Rappel : un messageenvoy via send par unprocessus correct parvient son destinataire(correct) en un temps t < "

    26

    Diffusion fiable uniforme synchrone (UTRB)

    Diffusion fiable uniforme synchrone dans ungroupe G de processus (composition fixe)

    metteur :send (m) to all processes in Gdeliver (m)

    destinataire (" metteur) :upon (first receipt of m)

    send (m) to all processes in Gdeliver (m)

    Rappel : un message envoy viasend par un processus correctparvient son destinataire(correct) en un temps t < "

    Un premier algorithme, simple mais peu efficace (nombre de messages % n2)

    Un algorithme plus efficace sera prsent plus tard

    27 28 2003-2004, S. Krakowiak

    Conclusion (provisoire) sur la validation

    ! Importance" Pratique : algorithme de base pour la ralisation de transactions

    rparties

    " Thorique : un des deux problmes fondamentaux de prise dedcision concerte (lautre est le consensus, voir plus tard)

    ! Solutions" Ncessitent en pratique des hypothses fortes sur la

    communication et le synchronisme

    " Protocoles de base : 2PC, 3PC

    ! Reste voir" Relations entre validation et consensus

    # consquences thoriques

    # consquences pratiques