Paxos Made Simple Autor: Puşcaş Radu George Polytechnic University of Bucharest Automatic Control and Computers Faculty Computer Science Department Paxos Made Simple Leslie Lamport - 01 Nov 2001 Autor: Puşcaş Radu George
Metode și Algoritmi de Planificare Cuprins Problema abordată Alegerea valorii Algoritm Învăţarea valorii Asigurarea progresului Utilizarea Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Problema abordată 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 Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Alegerea valorii I 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 Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Alegerea valorii II 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) Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Alegerea valorii III 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 Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Alegerea valorii IV 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 Metode și Algoritmi de Planificare
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 Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Învăţarea valorii 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ă Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Asigurarea progresului 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’ Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Utilizare Google – Chubby IBM –implementarea unor maşini virtuale tolerante la defecte Microsoft - Bing Metode și Algoritmi de Planificare
Metode și Algoritmi de Planificare Întrebări Metode și Algoritmi de Planificare