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
Metode și Algoritmi de Planificare
• Problema abordată
• Alegerea valorii
• Algoritm
• Învăţarea valorii
• Asigurarea progresului
• Utilizarea
Cuprins
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ă
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
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
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
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
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
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
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
Metode și Algoritmi de Planificare
• Google – Chubby• IBM –implementarea unor mașini virtuale tolerante la defecte• Microsoft - Bing
Utilizare
Metode și Algoritmi de Planificare
Întrebări