paxos made simple

12
Paxos Made Simple Autor: Puşcaş Radu George Leslie Lamport - 01 Nov 2001 Polytechn ic Universit y of Bucharest Automatic Control and Computers Faculty Computer Science Departmen t

Upload: cher

Post on 24-Jan-2016

55 views

Category:

Documents


1 download

DESCRIPTION

Computer Science Department. Polytechnic University of Bucharest. Automatic Control and Computers Faculty. Paxos Made Simple. Autor : Pu ş ca ş Radu George. Leslie Lamport - 01 Nov 2001. Cuprins. Problema abordată Alegerea valorii Algoritm Învăţarea valorii Asigurarea progresului - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Paxos  Made Simple

Paxos Made Simple

Autor:Puşcaş Radu George

Leslie Lamport - 01 Nov 2001

Polytechnic University of

Bucharest

Automatic Control and Computers

Faculty

Computer Science

Department

Page 2: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Problema abordată

• Alegerea valorii

• Algoritm

• Învăţarea valorii

• Asigurarea progresului

• Utilizarea

Cuprins

Page 3: Paxos  Made Simple

Metode și Algoritmi de Planificare

• O colecţie de procese trebuie sa aleagă o valoare• Doar o valoarea propusă poate fi aleasă• Doar o singură valoare poate fi aleasă• Un proces nu poate învăţa o valoarea dacă aceasta nu a fost

aleasă• Trei roluri pentru procese:– Proposer– Acceptor– Learner

Problema abordată

Page 4: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Un singur acceptor– Se alege prima valoare propusă– În caz că pică acceptorul, sistemul pică și el

• Mai mulţi acceptori– Propunerea e trimisă către un set de acceptori– Un set de acceptori = majoritate– Oricare două majorităti au un acceptor în comun– Trebuie aleasă o valoare chiar dacă a fost propusă doar

una

Alegerea valorii I

Page 5: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Un acceptor trebuie sa accepte prima valoare primită• Probleme:– Se propun mai multe valori simultan– Fiecare acceptor acceptă o valoare, dar majoritatea nu

poate alege unanim una• Un acceptor poate accepta mai multe valori• Valorilor propuse le sunt asociate numere naturale• Propunere = (valoare, număr)

Alegerea valorii II

Page 6: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Dacă o propunere cu valoarea v este aleasă, atunci orice propunere cu un număr mai mare care este aleasă are valoarea v

• Pentru a fi aleasă, o valoare trebuie să fie acceptată de minim un acceptor

• Dacă o propunere cu valoarea v este aleasă, atunci orice propunere cu un număr mai mare care este aceptată are valoarea v

• Se poate propune o valoarea diferită cu un număr mai mare• Daca o propunere (v,n) este aleasa, orice propunere (v’, n’), n’ > n va avea v’ = v

Alegerea valorii III

Page 7: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Pentru orice v şi n, dacă o propunere cu valoarea v si numărul n este propusă, atunci există un set S de majorităţi care:– Fie niciun acceptor nu acceptă o propunere cu numărul

mai mic decat n– Fie v este valoarea cu numărul cel mai mare propusă din

toate propunerile mai mici decât n acceptată de acceptorii din S

• Procesele trebuie să stie de cel mai mare n• Nu se pot prezice numerele ce urmează a fi asociate altor

propuneri• Porcesele care propun cer acceptorilor să nu accepte

propuneri cu n mai mic decât cel propus de ele

Alegerea valorii IV

Page 8: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Faza 1:– Un proces alege un număr n şi trimite un ‘prepare request’ ce conţine

acel n către o majoritate de acceptori– Dacă un acceptor primeşte un ‘prepare request’ cu un n mai mare

decat orice alt ‘prepare request’ la care a răspuns deja, garantează procesului care a generat cererea că nu va mai primi propuneri cu un număr mai mic decat cel trimis de el

• Faza 2:– Dacă un procesor primeşte un raspuns la propunerea lui de la o

majoritate de acceptori, trimite un ‘accept request’ ce conţine valoarea propusa v şi numărul anterior, n

– Dacă un acceptor primeşte un ‘accept request’, acceptă propunerea doar dacă nu a mai răspuns unui ‘prepare request’ având un n mai mare

Algoritm

Page 9: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Procesele trebuie să afle dacă o valoare a fost aleasă• Distribuire de la un acceptor la toate procesele în starea learn• Alegerea unui ‘distinguish learner’– ‘distinguish learner’ se ocupă cu broadcast-ul valorii alese

• Alegerea unui set de ‘distinguish learners ’– Fiecare procesor din set face broadcast cu valoarea aleasă

• Procesele pot întreba acceptorii desprea valoarea aleasă

Învăţarea valorii

Page 10: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Două procese P şi Q încep sa propună numere• P , n1, faza 1• Q, n2, faza 1, n2 > n1• Propunerea lui P este ignorată• P, n3, faza 1, n3 > n2• Se alege un ‘distinguish proposer’

Asigurarea progresului

Page 11: Paxos  Made Simple

Metode și Algoritmi de Planificare

• Google – Chubby• IBM –implementarea unor mașini virtuale tolerante la defecte• Microsoft - Bing

Utilizare

Page 12: Paxos  Made Simple

Metode și Algoritmi de Planificare

Întrebări