Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Σχετικά έγγραφα
Το Πρόβληµα της Συναίνεσης. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Παρουσία σφαλµάτων

Consensus and related problems

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Σύνοψη Προηγούµενου Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα Ι

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Απαντήσεις. Απάντηση. Απάντηση

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αλγόριθµοι και Πολυπλοκότητα

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Δροµολόγηση (Routing)

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν


Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Βασικοί Ορισµοί

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Αποτίµησηκαθολικού κατηγορήµατος

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Κεφάλαιο 5ο: Εντολές Επανάληψης

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Λεπτοµέρειες υλοποίησης αλγορίθµων

Δρομολόγηση (Routing)

Πανεπιστήµιο Θεσσαλίας

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Αδιέξοδα (Deadlocks)

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Θεώρηµα: Z ( Απόδειξη: Περ. #1: Περ. #2: *1, *2: αποδεικνύονται εύκολα, διερευνώντας τις περιπτώσεις ο k να είναι άρτιος ή περιττός

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

Σηµειώσεις στις σειρές

Κατανεμημένα Συστήματα Ι

HY118- ιακριτά Μαθηµατικά

3. Προσομοίωση ενός Συστήματος Αναμονής.

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 5

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

for for for for( . */

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 4

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Κατανεμημένα Συστήματα Ι

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Εισαγωγή στην Τοπολογία

Ανοχήβλαβών. Κατανεµηµένα Συστήµατα 19-1

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

HY118- ιακριτά Μαθηµατικά. Παράδειγµα. Από τα συµπεράσµατα στις υποθέσεις Αποδείξεις - Θεωρία συνόλων. Από τις υποθέσεις στα συµπεράσµατα...

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ ΣΗΜΕΙΩΣΕΙΣ #6 ΘΕΟ ΟΥΛΟΣ ΓΑΡΕΦΑΛΑΚΗΣ

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων»

Η εξίσωση του Fermat για τον εκθέτη n=3. Μία στοιχειώδης προσέγγιση

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα Ι

Σκοπός του µαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

ÏÌÉÊÑÏÍ ÖÑÏÍÔÉÓÔÇÑÉÏ ÊÏÑÄÅËÉÏ

Αλγόριθµοι και Πολυπλοκότητα

Θεωρία Υπολογισµού Theory of Computation

7.9 ροµολόγηση. Ερωτήσεις

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Simulation Commands

2 η Σειρά Ασκήσεων Data Link Layer

Επαναληπτικές Διαδικασίες

Transcript:

Προηγούµενο Μάθηµα Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Αντρέας Παυλογιάννης ευτέρα, 23 Νοεµβρίου, 2009 Αίθουσα Β3 Ασύγχρονα Κατανεµηµένα Συστήµατα Καθολικές Καταστάσεις Κατασκευή Καθολικών Καταστάσεων Παθητική Παρατήρηση µε Φυσικά Ρολόγια Παθητική Παρατήρηση µε Λογικά Ρολόγια Συνεπή Ολικά Στιγµιότυπα Συνεπή Ολικά Στιγµιότυπα µε Φυσικά Ρολόγια Συνεπή Ολικά Στιγµιότυπα µε Λογικά Ρολόγια Ο Αλγόριθµος των Chandy και Lamport Ασύγχρονα Κατανεµηµένα Συστήµατα Κατανεµηµένος Αλγόριθµος: υνατότητες Συστήµατα Ανεξάρτητων ιασυνδεδεµένων Οντοτήτων Η διασυνδεση επιτρέπει συνεργασία Η συνεργασια επιτρέπει παραγωγή επιθυµητών αποτελεσµάτων (πχ Spanning Trees, DB transactions) Πρόβληµα Να περιγραφεί κατάλληλα ο τροπος συνεργασιας των οντοτήτων για συστηµατική παραγωγή των επιθυµητών αποτελεσµάτων Περιγράφει τη συνεργασία των οντοτήτων Η περιγραφή οριζει τις ενέργειες που ϑα κάνει η κάθε οντοτητα... και τον τροπο που ϑα επικοινωνούν µεταξύ τους Είναι ίδια για κάθε οντοτητα Αποτελεί συστηµατική λύση του εκάστοτε προβλήµατος αντιµετωπίζει επιτυχώς κάθε στιγµιότυπο αυτού Αξιολόγείται µε ϐάση τον αριθµο των ενεργειών που ϑα εκτελέσει η κάθε οντότητα και των αριθµό των µηνυµάτων που ϑα σταλούν στο δίκτυο

Κατανεµηµένος Αλγόριθµος: Αδυναµίες Μοντέλο ιεργασιών Time Free Systems: εν επιτρέπεται καµία a priori υπόθεση ούτε για τις ταχύτητες µε τις οποίες εκτελούνται οι ενέργειες σε κάθε οντότητα ούτε για τις ταχύτητες ανταλλαγής µηνυµάτων Κάθε οντότητα καλείται να εκτελέσει την κατάλληλη ενέργεια γνωρίζοντας εν γένει µέρος µόνο της συνολικής κατάστασης του συστηµατος και της προόδου που έχει γινει ως τώρα Real Life: Πλήθος αστάθµητων παραγόντων επηρρεάζουν το σύστηµα: Μηνύµατα χάνονται, οντότητες σταµατούν να λειτουργούν-ξαναξεκινούν, οντότητες λειτουργούν αυθαίρετα (ή και κακόβουλα), χάνουν την κατάστασή τους... Καθώς οι παράγοντες είναι αστάθµητοι επιβάλλουν ένα µη ντετερµινισµό στο σύστηµα ο οποίος πρέπει να παρακαµφθεί ώστε να οδηγηθούµε σε ντετερµινιστικά αποτελέσµατα init(p, vp) out(p, v p) P C send(m, p, q) receive(m, p, q) Q init(q, vq) out(q, v q) I/O automata Χαρακτηρίζονται από ένα state Ειδικές περιπτώσεις: initial, halt states... και από µια state transition function: states (messagein, process) states (messageout, process) Ενδεχοµένως να εκτελούν και εσωτερικά tasks states {(messagein, process) } states {(messageout, process) } Εισάγεται η έννοια του fareness Μοντέλο Καναλιών Σύνοψη 8 ης ιάλεξης init(p, vp) out(p, v p) P C receive(m, p, q) send(m, p, q) Q init(q, vq) out(q, v q) I/O automata Χαρακτηρίζονται από ένα state Πρόκειται για µια ουρά µε τα µηνύµατα που πρέπει να παραδώσουν Ακολουθείται FIFO προτεραιότητα Εκτελούν ενέργειες receive(m, p, q) και send(m, p, q) Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Μοντελοποίηση Ασύγχρονων Συστηµάτων Ασύγχρονα Κατανεµηµένα Συστήµατα Σφάλµατα σε Ασύγχρονα Συστήµατα Αδυναµία Εύρεσης Λύσης Ανιχνευτές Σφαλµάτων Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενο Μάθηµα

Πρόβληµα: To stop or not to stop waiting Πρόβληµα: To stop or not to stop waiting Σε ένα ϱεαλιστικό ασύγχρονο σύστηµα εµφανίζονται γεγονότα µε πολύ κοινά χαρακτηριστικά που οµως πρέπει να αντιµετωπιστούν διαφορετικά Μηνύµατα που στέλνει µια διεργασια χάνονται πρωτού παραληφθούν Μια διεργασία εκτελει ϐήµατα µε πολύ αργο ϱυθµό Μια διεργασια έχει καταρρεύσει Κοινό χαρακτηριστικό Η παρουσία της διεργασίας δε γίνεται αισθητή από το υπόλοιπο δικτυο Το κοινό χαρακτηριστικό δυσκολεύει το διαχωρισµό των γεγονότων Ωστόσο ο διαχωρισµός είναι αναγκαιος στις περισσότερες περιπτώσεις Καθώς µια διεργασια δεν ανταποκρίνεται προκύπτει το διληµµα αν αξίζει το υπόλοιπο δίκτυο να την περιµένει Το πρόβληµα έχει τις ϐάσεις του στο συνδιασµό time free και fault vulnerable συστήµατος Μήπως κάνουµε λάθος που µπλέκουµε αυτα τα δύο; Το time free µοντέλο παρέχει ένα αναγκαίο abstraction για τη µοντελοποίηση των περισσοτερων πραγµατικών συστηµάτων Σφάλµατα συµβαίνουν χωρίς να µπορούν να προβλεφθούν ή να αποφευχθούν, σε διάφορα επίπεδα(hardware failures, software bugs..) Στην περίπτωσή µας λοιπόν και στραβός ειναι ο γυαλός (time free συστήµατα) και στραβά αρµενίζουµε (fault vulnerabilities)! Αφού δεν µπορούµε να αποφύγουµε το πρόβληµα, ας προσπαθήσουµε να το λύσουµε! Προσεγγίσεις Το νέο µοντελο Πόσο µας δυσκολεύει αυτή η κατάσταση; Οι Fischer, Lynch, Paterson έδειξαν ότι το πρόβληµα του Consensus είναι άλυτο για οποιοδήποτε δίκτυο άκοµα και υπό την παρουσία ενός µόνο process failure Λύσεις : Randomization Weaker Problems Strongest Model (Partial Synchrony..) Failure Detectors Το µοντελο της διεργασίας περιλαµβανει ένα επιπλέον component, τον failure detector Ουσιαστικά αποτελεί ένα oracle που κάνει εκτιµήσεις για το ποιες διεργασίες έχουν πέσει Γνωστοποιεί τις εκτιµήσεις του µέσα από κάποιες µεταβλητές (πχ ένα σύνολο stopped processes) Η ακρίβειά του χαρακτηρίζεται από δύο µετρικές Accuracy: Η δυνατότητα να δίνει έγκυρες εκτιµήσεις Completeness: Η δυνατότητα να δίνει πλήρεις εκτιµήσεις

Γιατί Failure Detectors Πρακτικά Οι σχετικά ασθενείς Failure Detectors µπορούν να υλοποιηθούν µέσα από κατάλληλα πρωτόκολλα(realistic failure detectors). πχ στατικά και δυναµικά timeouts αποτελούν υλοποίηση συγκεκριµένων κλάσεων failure detectors Θεωρητικά Εύρεση της ασθενέστερης κλάσης που είναι αναγκαια και ικανή για τη λύση ενός προβλήµατος αποκαλύπτει κάτι για το ίδιο το πρόβληµα και ϕαίνεται να χαρακτηριζει τη ϕυση του Απόδειξη ότι µια πολύ ισχυρή και πρακτικά µη υλοποιήσιµη κλάση είναι η ασθενέστερη που χρειάζεται για να λυθεί το πρόβληµα αποτελεί ένα ειδος impossibility result Προβλήµατα ιεραρχούνται µε ϐάση την ασθενέστερη κλάση που είναι αναγκαία και ικανή για τη λύση τους Consensus: Ορισµός του προβλήµατος Consensus Κάθε διεργασία v έχει µια αρχική τιµή initv {0, 1}. Στόχος είναι όλες οι διεργασιες να αποφασίσουν µια κοινή τιµή πχ σε DB transactions 1=αποδοχή, 0=απόρριψη Ο αλγόριθµος µπορει να ειδωθει ως ένα σύστηµα εξαγωγής συµπερασµάτων µε αρχικές τιµές στο ϱόλο των premises και κοινή τιµή= αποδοχή το συµπέρασµα-στόχος Οπως σε κάθε τέτοιο σύστηµα, ϑέλουµε να χαρακτηρίζεται από Soundness: Κοινή τιµή = αποδοχή µόνο αν v initv = 1(δεν αποφασιζουµε λάθος) Completeness: Αν v initv = 1 τότε αναγκαστικά κοινή τιµή = αποδοχή (αποφασιζουµε σε κάθε ευκαιρεία) Consensus: Ορισµός του προβλήµατος Χρησιµοποιείται η έννοια του configuration Χαλαρώνοντας τους περιορισµούς στον τρόπο που παιρνεται η απόφαση για την κοινή τιµή: Consensus Κάθε διεργασία v έχει µια αρχική τιµή initv {0, 1}. Στόχος είναι όλες οι διεργασιες να αποφασίσουν µια κοινή τιµή ικανοποιώντας τα εξής κριτήρια: Η απόφαση για την κοινή τιµή είναι ίδια για ολες τις διεργασιες Για οποιαδήποτε τιµή v {0, 1}, υπάρχει µια αρχική κατάσταση που οδηγεί σε κοινή τιµή v Proof Idea 1. Εστω αλγόριθµος P που λύνει το πρόβληµα 2. Υπάρχει αρχικό configuration που µπορεί να οδηγήσει σε οποιαδηποτε decision value (δεν είναι προφανές) 3. εδοµένου ενός configuration C, κάποια στιγµή ϑα πραγµατοποιηθεί παράδωση ενός µηνύµατος m1 στη διεργασια p που ϑα κλειδώσει την decision value 4. Κάθε τέτοιο µήνυµα το καθυστερούµε και παραδίδουµε ένα σύνολο άλλων τα οποία δεν κλειδώνουν την decision value 5. Αργότερα παραδιδεται το m1 το οποίο αδυνατεί να κλειδώσει την decision value πλέον. Γιατι;

Proof Idea Αν δε το παραδίδαµε καθόλου (faulty process) ο αλγόριθµος κάποτε ϑα τερµάτιζε µέσα από µια ακολουθία ϐηµάτων S στην οποία η p δε συµµετέχει Αφού το C µπορει να οδηγήσει σε οποιοδηποτε decision value, ο τερµατισµός µπορεί να αποφασίσει είτε dec_value=0 είτε 1 Οµως αν αργούσαµε να το παραδώσουµε πολύ, ο αλγόριθµος πάλι ϑα τερµάτιζε. Παράδωση του m1 σε αυτό το σηµείο δεν πρέπει να µπορεί να κλειδώσει την decision value γιατί έχει ήδη αποφασιστεί και µπορει να είναι οποιαδηποτε. Η p δε συµµετέχει στο S. Συνεπώς πρώτα S και µετα παράδωση του p οδηγει στο ίδιο configuration µε παράδωση m και µετά S. Αρα και µε το δεύτερο σενάριο η p µένει στο παιχνίδι και το decision value δεν κλειδώνει. Ορισµοί Definition Ενα στιγµιότυπο του συστηµατος είναι µια ακολουθία που περιέχει τις καταστασεις κάθε διεργασίας Definition ύο στιγµιότυπα ονοµάζονται γειτονικά αν διαφέρουν ως προς την κατασταση µιας µόνο διεργασίας Definition Γεγονός e = (p, m) ονοµάζεται η παράδωση του µηνύµατος m στη διεργασια p, και ευθύνεται για τη µετάβαση µεταξύ δύο στιγµιοτύπων Ορισµοί Definition Ενα στιγµιότυπο C ονοµάζεται προσπελάσιµο από ένα άλλο C αν υπάρχει µια ακολουθία γεγονότων S που να οδηγει απ το C στο C Definition Ενα στιγµιότυπο C ονοµάζεται αµφισηµαντο αν στο σύνολο όλων των τερµατικών στιγµιοτύπων που ειναι προσπελάσιµα από το C υπάρχουν στιγµιότυπα µε dec_value=0 και στιγµιότυπα µε dec_value=1. ιαφορετικά το C ονοµάζεται µονοσήµαντο και i-σήµαντο ανάλογα µε την περιπτωση του dec_value Λήµµα Εστω στιγµιότυπο C και ακολουθίες γεγονότων S1, S2 που οδηγούν στα στιγµιότυπα C1, C2 αντίστοιχα. Αν τα σύνολα των διεργασιών που συµµετέχουν στην S1 και την S2 είναι ξένα µεταξύ τους, τότε η S2 µπορει να εφαρµοστει στο C1 και η S1 στο C2, ώστε και οι δυο εφαρµογές να οδηγήσουν σε ένα κοινό στιγµιότυπο C3

S1 C S2 Λήµµα Κάθε αλγόριθµος A που λύνει το πρόβληµα έχει τουλάχιστον ένα αµφισήµαντο αρχικό στιγµιότυπο Αντίθετα µε την περίπτωση που δε συµβαίνουν καθόλου σφάλµατα Εκεί κάθε αρχικό στιγµιότυπο οδηγει µοναδικά σε ένα τελικό C1 S2 C3 S1 C2 S2(S1(C)) = S1(S2(C)) Η απόφαση ϋπάρχει εξ αρχής. Θέµα του αλγορίθµου ειναι να συντονίσει όλες τις διεργασίες σε αυτή Εµφυτος µη ντετερµινισµός λόγω απρόβλεπτων σφαλµάτων Αν το τµήµα του δικτύου που ϑα επιβάλλει απόφαση 1 πέσει, ϑα αποφασισθει 0 Οµως δεν ξέρουµε αν ϑα πέσει Απόδειξη; Απόδειξη: Εστω ότι δεν έχει. Τότε: 1. Θα έχει και 0-σήµαντα και 1-σήµαντα αρχικά στιγµιότυπα αφού και οι δύο αποφάσεις είναι πιθανές 2. ιατάσσουµε όλα τα αρχικά στιγµιότυπα ώστε δύο διαδοχικά να είναι και γειτονικά 3. Θα υπάρχει 0-σήµαντο C0 γειτονικό µε 1-σήµαντο C1 µε p τη διεργασια που διαφωνούν 4. Εφαρµόζουµε την ίδια ακολουθία γεγονότων S και στα δύο Η p δε συµµετεχει στην S 5. Και στις δύο περιπτώσεις ϑα καταλήξουµε στην ίδια decision value 6. Αρα ένα εκ των C0, C1 είναι αµφισήµαντο. Ατοπο. Με το προηγούµενο λήµµα δείξαµε ότι υπάρχει αµφισηµαντο αρχικό στιγµιότυπο Με το επόµενο ϑα δειξουµε ότι από κάθε αµφισήµαντο στιγµιότυπο µπορούµε να οδηγηθούµε σε επίσης αµφισήµαντο στιγµιότυπο. Λήµµα Τι ϑα γινόταν αν καθυστερούσαµε το γεγονός που οδηγει σε µονοσήµαντο στιγµιότυπο; Εστω C αµφισήµαντο στιγµιότυπο του αλγορίθµου και e = (p, m) ένα γεγονός που µπορει να λάβει χώρα στο C. Εστω X το σύνολο των στιγµιοτύπων που ειναι προσπελάσιµα από το C χωρίς να λάβει χώρα το e, και Y = e(x) = {e(e) E X}. Τότε το Y περιέχει τουλάχιστον ένα αµφισήµαντο στιγµιότυπο. Η απόφαση αναβάλλεται συνεχώς

C Απόδειξη: Εστω ότι το Y δεν περιέχει δισήµαντα στιγµιότυπα. Τότε περιέχει και 0-σήµαντα και 1-σήµαντα Το C ειναι αµφισήµαντο Οδηγεί και σε 0-σήµαντα και σε 1-σήµαντα Ακόµα και µε την παράδοση του e κάθε i-σήµαντο παραµένει i-σήµαντο X1 X2... Xk e e e Y1 Y2... Yk 0 1 Απόδειξη: Ετσι υπάρχουν C0, C1 στο X ώστε το Di = e(ci) να είναι i-σήµαντο. Παρατηρώντας προσεκτικότερα, υπάρχουν C0, C1 ώστε Ci = e (C i) µε e = (p, m ) ένα γεγονός Το ένα προκύπτει απ το άλλο µε την παράδωση ενός µηνύµατος Χωρίς ϐλάβη της γενικότητας C1 = e (C0) C e0 e1 C0 e1 = e e0 C1 C C0 1 C0 2...... e C1 C 1 C k 0 Εξεταζουµε γεγονότα που συµβαίνουν στο C

I Απόδειξη: ιερεύνηση για την p p p: Τότε D1 = e (D0) λόγω της αντιµεταθετικότητας ξένων γεγονότων. Ατοπο καθώς από 0-σήµαντο στιγµιότυπο δεν ειναι δυνατον να οδηγηθούµε σε 1-σήµαντο D0 e e C0 D1 e e C1 Απόδειξη: ιερεύνηση για την p p = p: Τότε για ακολουθία γεγονότων S στην οποία η p δε συµµετέχει και οδηγει σε απόφαση A, η S µπορει να εφαρµοστεί και στο D0 και στο D1 Η S υπάρχει καθώς στην περίπτωση που η p πέσει το υπόλοιπο δικτυο έχουµε υποθέσει πως αποφασίζει Η S εφαρµοζόµενη στο Di οδηγεί σε i-σήµαντο στιγµιότυπο Ei (καθώς το Di είναι i-σήµαντο) Οµως λόγω αντιµεταθετικότητας: e(a) = E0 e (e(a)) = E1 Αρα το στιγµιτότυπο της απόφασης ειναι αµφισήµαντο. Ατοπο αφού έχει αποφασισει! Αλλάζει το state της p µόνο E0 S D0 e e S C0 A e C1 e e Προβληµα: Οι διεργασίες αλλάζουν την απόφασή τους e D1 S E1 Αλλάζει το state της p µόνο Σύµφωνα µε τα παραπάνω µπορούµε να κατασκευάσουµε µια εκτελεση του αλγορίθµου που δεν τερµατίζει Υπάρχει ένα αµφισήµαντο αρχικό στιγµιότυπο Κάθε γεγονός που ϑα οδηγήσει σε µονοσήµαντο στιγµιότυπο το καθυστερούµε αρκετά ώστε να χάσει αυτή την ιδιότητα Καθώς κινούµαστε σε δισήµαντα στιγµιότυπα, απόφαση δεν παίρνεται Ο αλγόριθµος δεν τερµατίζει

Ισχύς του result Γιατι όλη αυτή η διαδικασια; Ανυπαρξία λύσης εφαρµοσιµης σε κάθε δίκτυο αποδεικνύεται εύκολα είχνουµε impossibility για δικτυο 2 διεργασιών Το παραπάνω result είναι πιο ισχυρο! είχνει πως δεν υπάρχει λύση ακόµα και αν ψάχνουµε για τέτοια σε συγκεκριµένο δίκτυο Ακόµα κι αν πέσει µία µόνο διεργασια Αρκεί να µη γνωρίζουµε εκ των πρωταίρων ποια 1 λύση για 1 instance 1 λύση για κάθε instance Ορολογια Definition Ως εκτέλεση αποκαλούµε οποιαδηποτε άπειρη ακολουθία ϐηµάτων του συστηµατος Definition εδοµένης µιας εκτέλεσης σ, crashed(t, σ) είναι το σύνολο των διεργασιών που έχουν καταρρεύσει ως τη χρονική στιγµή t και up(t, σ) το συµπλήρωµά του. Γενικά, crashed(σ) = tcrashed(t, σ) και up(σ) το συµπλήρωµά του Result: Αδυνα- µία ύπαρξης τέτοιας λύσης Γενικά ψάχνουµε για τέτοιες λύσεις Failure Detector Module Failure Detector Ενα συστατικό που ϐρίσκεται τοπικά σε κάθε διεργασια p Dp: µια συνάρτηση από (χρονος σύνολο όλων των εκτελέσεων) δυναµοσυνολο των διεργασιών Dp(t, σ) : το συνολο των διεργασιών που υποπτευεται η διεργασία p πως έχουν πέσει τη χρονική στιγµή t στην εκτέλεση σ ιαφορετικές εκτιµήσεις για κάθε διεργασια. ιεργασιες που ϑεωρούνται νεκρές µπορει αργοτερα να διαπιστωθει ότι δεν είναι Αν p crashed(t, σ) τοτε ϑεωρούµε Dp(t, σ) = Οι failure detectors κατηγοριοποιούνται µε ϐαση την ακρίβεια (accuracy) και την πληρότητα (completeness) των εκτιµήσεων που κάνουν. Accuracy - Completeness Completeness Strong Completeness: Τελικά, κάθε διεργασια που πέφτει γινεται αντιληπτή από κάθε διεργασια που δεν πέφτει σ, p crashed(σ), q up(σ), t, t t : p Dq(t, σ) Weak Completeness: Τελικά, κάθε διεργασια που πέφτει γινεται αντιληπτή από κάποια διεργασια που δεν πέφτει σ, p crashed(σ), q up(σ), t, t t : p Dq(t, σ) Τελικά, καθώς πρώτα πέφτει η διεργασία, και µετά το αντιλαµβανεται το δίκτυο πχ περνάει κάποια ώρα µέχρι να γινει το timeout Weak Completeness καθώς ενδεχοµένως µερικές µόνο διεργασιες να κάνουν monitor το δίκτυο

Accuracy - Completeness Accuracy Strong Accuracy: Καµία διεργασια που δεν έχει πέσει δε ϑα υποπτευθεί από καµία άλλη σ, p up(σ), q, t : p Dq(t, σ) Weak Accuracy: Κάποια διεργασία που δεν έχει πέσει δε ϑα υποπτευθεί ποτέ από καµία άλλη σ, p up(σ), q, t : p Dq(t, σ) Σε κάθε περίπτωση ϑεωρείται πως υπάρχει τουλάχιστον µια διεργασια που αν δεν πέσει δε ϑα την υποπτευθεί καµιά άλλη Μη ϱεαλιστικό Μια αργά εκτελούµενη διεργασια αργεί να δώσει σηµεία Ϲωής στο υπόλοιπο δίκτυο Πρόωρα timeouts συµβαίνουν στην πραγµατικότητα Accuracy - Completeness Eventual Accuracy Eventual Strong Accuracy: Τελικά, καµία διεργασια που δεν έχει πέσει δε ϑα υποπτευθεί από καµία άλλη σ, t, p up(σ), q, t t : p Dq(t, σ) Eventual Weak Accuracy: Τελικά, κάποια διεργασία που δεν έχει πέσει δε ϑα υποπτευθεί ποτέ από καµία άλλη σ, t, p up(σ), q, t t : p Dq(t, σ) Ρεαλιστικότερα χαρακτηριστικά: πχ υλοποίηση µε δυναµικά timeouts Οταν λαµβανεται µήνυµα από διεργασια που ϑεωρείται πεσµένη, αναθεωρείται η εκτίµηση και αυξάνεται ο timer που σχετίζεται µε αυτή Τελικά ο timer ϑα πάρει τέτοια τιµή που ϑα συµβαδιζει µε τον αργο ϱυθµό εκτελεσης της διεργασιας Κλάσεις failure detectors Completeness Εµφανώς P S W Completeness Accuracy Strong Weak Strong Perfect (P) Strong (S) Weak (Q) Weak (W) Eventual Accuracy Eventual Strong Eventual Weak Strong Eventually Perfect ( P) Eventually Strong ( S) Weak ( Q) Eventually Weak ( W) Εµφανώς P S W Εµφανώς P P, S S, W W Reducibility Μεταξύ κλάσεων failure detectors ορίζεται η πράξη της αναγωγής Λέµε ότι ο D ανάγεται στον D αν υπάρχει αλγόριθµος T D D ώστε: Κάνοντας χρήση του D Και του αλγορίθµου αναγωγής TD D Εξωµειώνουµε τη συµπεριφορά ενός failure detector µε τα χαρακτηριστικά του D Οποιοσδήποτε αλγοριθµος χρησιµοποιούσε τον D, µπορει πλέον να χρησιµοποιεί τον D A queries D Algorithm A D T D D

Reducibility - Αναλογίες Προβλήµατα: Λέµε ότι το D ανάγεται στο D D Reduction Algorithm Μπορώ να λύσω το D λύνοντας το D D: Τουλάχιστον τοσο δυσκολο όσο το D Η αναγωγή ϕανερώνει κάτι για ένα αρνητικό χαρακτηριστικό του προβλήµατος Πόσο δύσκολο ειναι D Failure Detectors: Λέµε ότι ο D ανάγεται στον D D Reduction Algorithm Μπορώ να έχω τον D έχοντας τον D Σε κάθε περίπτωση: D D D: Προσφέρει τουλάχιστον τόση πληροφορία όση το D Η αναγωγή ϕανερώνει κάτι για ένα ϑετικό χαρακτηριστικό του failure detector D Πόση πληροφορία παρέχει S W Παρατηρηση: Στην περίπτωση της (ισχυρής) πληρότητας δεν υπάρχει χρονικός περιορισµός Θέλουµε κάποια στιγµή στο µέλλον όλες οι διεργασίες που δεν έχουν πέσει να αντιληφθούν αυτές που έχουν πέσει εδοµένης της ασθενής πληρότητας (κλάση W) εύκολα οδηγούµαστε σε ισχυρή (κλάσης S) Οι εκτιµήσεις για τις διεργασίες που έχουν πέσει ανταλάσσονται µεταξύ των διεργασιών Αφού µια διεργασία αντιλαµβανεται όλες όσες έχουν πέσει, καταφέρνει τελικά να ενηµερώσει και τις υπόλοιπες Επιπλέον διατηρείται η ασθενής ακρίβεια S W Η διεργασια που δε ϑα προκαλέσει λάθος εκτίµηση ειναι κοινή Λύση του Consensus µε την κλάση W Αλγοριθµος µε S Αρκει να λυθεί µε την κλάση S Απαιτείται ένας τετριµένος περιορισµός στο συνολο των διεργασιών που ϑα πέσουν Να υπάρξει τουλάχιστον µια που δε ϑα πέσει (f < n) Ο αλγόριθµος λειτουργεί σε 3 ϕάσεις: 1. Οι διεργασιες ανταλάσσουν σύνολα τιµών σε n ασύγχρονους γύρος 2. Οι διεργασιες ενηµερώνονται για τις ανταλλαγες που έλαβαν χωρα στο προηγούµενο ϐηµα 3. Οι διεργασιες αποφασιζουν µε ϐάση ένα κοινό σύνολο που προκύπτει από την ενηµέρωση Οταν µια διεργασία υποπτευθεί ότι µια άλλη έχει πέσει σταµατά να περιµένει µήνυµά της και συνεχίζει στην εκτέλεση του αλγορίθµου 0. Αρχικοποίηση Vp,... Vp[p] ip; p Vp Vp: Το σύνολο των τιµών που έχει δει η p κατα την ανταλλαγή των µηνυµάτων p: Το σύνολο µε τις νέες τιµές που έχει δει σε κάποιο γύρο και πρέπει να αναµεταδώσει

Αλγοριθµος µε S Αλγοριθµος µε S 1. Φάση ανταλλαγής τιµών (FloodSet) for rp 1 to n p broadcasts (rp, p, p) wait until[ q : received (rp, q, q) or q Sp] msgsp(rp) {(rp, q, q) received(rp, q, q)} p,... for k 1 to n if Vp[k] = and (rp, q, q) msgsp(rp) with q[k] then Vp[k] q[k]; p[k] = q[k] Κάθε διεργασια λαµβανει τα Vq των q που ϑεωρει ότι δεν έχουν πέσει Υπάρχει τουλάχιστον µια διεργασια p ώστε οι τιµές του Vp τελειώνοντας τη ϕάση αυτή να περιέχονται σε κάθε Vq όταν η q τελειώνει τη ϕάση Η διεργασια που προβλέπεται από την ασθενή ακριβεια Αλγόριθµος µε S Αλγόριθµος µε S Στο τέλος της πρώτης ϕάσης, κάθε διεργασια έχει µια άποψη για το σύνολο των τιµών που γνωρίζει το δίκτυο Οι απόψεις αυτές είναι εν γένει διαφορετικές Οµως υπάρχει ένα υποσύνολο αυτών που το γνωριζουν όλοι Προβληµα: Ποιο είναι αυτο το υποσυνολο; Υπάρχει διεργασία p που έχει ως Vp το υποσύνολο αυτό ε γνωρίζουµε ποια Ωρα για τη Φάση 2! Η τοµή των συνόλων συµπίπτει µε το συνολο µιας τουλάχιστον διεργασίας 2. Φάση προσδιορισµού κοινού υποσυνόλου wait until [ q : received Vq or q Sp] lastmsgsp {Vq receveid Vq} for k 1 to n if ( Vq lstamsgsp with Vq[k] = ) then Vp[k] = Οι διεργασίες διαδίδουν ποιες τιµές δεν έχουν δει Και πάλι ενδέχεται να γινουν λάθος εκτιµήσεις Οµως υπάρχει µια διεργασια που δεν ϑα αγνοηθεί Το σύνολο αυτής ϑα καθορίσει τις τιµές που γνωρίζει το δίκτυο

Αλγοριθµος µε S Παράδειγµα εκτέλεσης αλγορίθµου - 1 3. Φάση Απόφασης Decide on first non - element of Vp Καθώς τα συνολα είναι κοινά για κάθε διεργασια, η απόφαση οδηγεί σε συµφωνία Η τιµή που αποφασιζεται είναι αρχική τιµή κάποιας διεργασίας Το πρόβληµα λύνεται Λύνεται; 1 r1 = 0 1,,, 0 r3 = 0,, 0, 1 3 Αρχικοποίηση r2 = 0 Οι διεργασιες αρχικοποιούν 1 τα σύνολα τους µε 2, 1,, Εισάγουν στην αντίστοιχη ϑέση την αρχική τιµή τους Υποθέτουµε ότι η διεργασια 4 δε ϑα εκτιµηθει εσφαλµένα ως πεσµένη r4 = 0 1 από καµία άλλη 4,,, 1 Weak Accuracy Παράδειγµα εκτέλεσης αλγορίθµου - 2 Παράδειγµα εκτέλεσης αλγορίθµου - 3 1 r1 = 0 1,,, 1 0 r3 = 0,, 0, 3 (,,, 1) (,,, 1) (,,, 1) r2 = 0 1 Φάση 1 2, 1,, Η διεργασία 4 εκπέµπει το συνολό της Καµία άλλη διεργασια δεν έχει ξεκινήσει Καµία διεργασια δεν υποπτεύεται καµία άλλη 4 r4 = 1 1,,, 1 1 r1 = 0 1,,, 1 0 r3 = 1,, 0, 1 3 (, 1,, ) (,, 0, ) (,, 0, ) (, 1,, ) (, 1,, ) (,, 0, ) Φάση 1 2, 1,, 1 4 r4 = 1 1,,, 1 Οι διεργασίες 2 και 3 εκπέµπουν τα σύνολά τους Οι διεργασιες 2 και 3 λαµβάνουν το σύνολο που έχει εκπέµψει η 4 Η διεργασια 1 καθυστερει πολύ - οι υπόλοιπες ϑεωρούν ότι έχει πέσει.

Παράδειγµα εκτέλεσης αλγορίθµου - 4 Παράδειγµα εκτέλεσης αλγορίθµου - 5 1 r1 = 1 1, 1, 0, 1 1 0 r3 = 1,, 0, 1 3 (1,,, ) (, 1,, ) (,, 0, 1) 2, 1,, 1 4 r4 = 1 1, 1,, 1 Y, N, Y, N Φάση 1 Η διεργασία 4 λαµβάνει το σύνολο που έχει εκπέµψει η 2 Η διεργασία 4 αργει να λάβει απ την 3 και ϑεωρεί ότι έχει πέσει Η διεργασια 2 πέφτει Η διεργασία 1 εκπέµπει το σύνολό της Η διεργασια 1 λαµβανει ότι έχουν εκπέµψει οι υπόλοιπες 1 r1 = 1 1, 1, 0, 1 1 0 r3 = 1,, 0, 1 3 Φάση 1 Η διεργασία 4 2, 1,, 1 αντιλαµβανεται ότι η 2 έχει πέσει Θεωρώντας ότι έχει µείνει (, 1,, 1) µόνη στο δίκτυο εκτελει (, 1,, 1) τους επόµενους 2 γύρους r4 = 4 1 εκπέµποντας το σύνολό της 4, 1,, 1 (, 1,, 1) Y, Y, Y, N Παράδειγµα εκτέλεσης αλγορίθµου - 6 Παράδειγµα εκτέλεσης αλγορίθµου - 7 Φάση 2 1 r1 = 1 1, 1, 0, 1 1 (1, 1, 0, 1) 0 r3 = 2 1, 1, 0, 1 N, Y, N, N 3 (1, 1, 0, 1) (1, 1, 0, 1) Φάση 1 Η διεργασία 3 λαµβανει το σύνολο της 1 2, 1,, 1 Αντιλαµβάνεται ότι η 1 δεν έχει πέσει - αναθεωρεί Αντιλαµβάνεται ότι η 2 έχει πέσει r4 = 4 Προχωρά στον επόµενο 1 γυρο εκπέµποντας το νέο 4, 1,, 1 σύνολο Y, N, Y, N 1 r1 = 1 1, 1, 0, 1 1 0 r3 = 2 1, 1, 0, 1 N, Y, N, N 3 (, 1,, 1) (, 1,, 1) (, 1,, 1) 2, 1,, 1 4 r4 = 1, 1,, 1 Y, Y, N, N Η διεργασια 4 µπαίνει στη ϕάση 2 Στο µεταξύ, έχει λάβει τα µηνύµατα της 3 και αντιλαµβανεται ότι δεν έχει πέσει - αναθεωρεί Εκπέµπει το σύνολό της Περιµένει να λάβει το σύνολο της 3 όταν αυτη µπει στη ϕάση 2 Το σύνολο της 4 είναι το µόνο που εµφανίζεται σε όλες τις διεργασιες - αυτο ϑα επικρατήσει

Παράδειγµα εκτέλεσης αλγορίθµου - 8 Παράδειγµα εκτέλεσης αλγορίθµου - 9 N, Y, N, N 1 r1 = 2 1, 1, 0, 1 1 0 r3 = 2 1, 1, 0, 1 N, Y, N, N 3 2, 1,, 1 r4 = 1 4, [1],, 1 Y, Y, Y, N Φάση 3 Η διεργασια 3 πέφτει Η διεργασία 4 τελικά αντιλαµβανεται ότι η 3 έχει πέσει Καθώς ϑεωρεί ότι έµεινε µόνη της, αποφασιζει την τιµή 1 Η διεργασια 1 συνεχιζει να εκτελεί αργα τους γυρους 2-3-4 Αντιλαµβανεται ότι η 2 έχει πέσει Κάθε µήνυµα που λαµβανει από τις 3 και 4 το οποίο εσταλη στην πρώτη ϕαση τους δε µεταβαλλει το σύνολό της N, Y, Y, N 1 r1 =, [1],, 1 1 0 r3 = 1 1, 1, 0, 1 N, Y, N, N (1, 1, 0, 1) 3 (1, 1, 0, 1) (1, 1, 0, 1) 2, 1,, 1 4 r4 = 1, [1],, 1 Y, Y, Y, N Φάση 3 Τελικά η διεργασια 1 µπαίνει στη ϕάση 2 Στέλνει το σύνολό της σε όλες τις άλλες Λαµβανει το σύνολο που έχει εκπέµψει η 4 προηγουµένως για τη ϕάση 2 Ενηµερώνει το δικό της σύνολο Αντιλαµβανεται ότι η 3 έχει πέσει Μην περιµένοντας το σύνολο άλλης διεργασιας, αποφασιζει την τιµή 1 Παρατηρήσεις εν επιβάλλεται κανένας ντετερµινισµος στο δικτυο Πολλαπλές παρόµοιες εκτελέσεις εν γένει οδηγούν σε διαφορετική απόφαση εν διατηρήται καµία πρωτεραιότητα στις τιµές προς απόφαση Πχ το δίκτυο δε µπορει να πάρει απόφαση για τη µεγαλύτερη αρχική τιµή Μπορεί να αποφασισθεί τιµή διεργασιας που έχει πέσει Πρόβληµα όταν η τιµή αυτή επηρρεάζει το δικτυο στο µέλλον Τελικά επιτυγχάνεται συµφωνία Οµως η τιµή µπορεί να ειναι οποιαδήποτε Αχρηστο πχ για DB transactions Παρατηρήσεις Επιπλέον ο αλγοριθµος υποθέτει ασθενή ακρίβεια Μη ϱεαλιστικό ε γίνεται να αποφευχθούν πρόωρα timeouts ακόµα και για µία διεργασια Ωστοσο το πρόβληµα λύνεται και από την κλάση W Με ισχυροτερη απαίτηση για τις µη προβληµατικές διεργασιες (f < n/2) Ενας άλλος τρόπος ώστε να µην επιτραπεί λάθος εκτιµήσεις να οδηγήσουν σε πρόωρο τερµατισµο διεργασιών Οι κινήσεις κάθε διεργασιας δε στηρίζονται µόνο στις εκτιµήσεις του failure detector Αυτές αρχικά µπορει να ειναι εξ ολοκλήρου λάθος Αντ αυτού ϕροντίζουν να συµβαδίζουν µε τουλάχιστον n/2 άλλες διεργασίες Αυτό εγγυάται ότι συµβαδιζουν µε τουλάχιστον µια διεργασια που δεν πρόκειται να πέσει Οταν µια διεργασια πάρει τελικά µια απόφαση, ϑα λάβει υπόψιν της το state της διεργασίας αυτής

Από W σε S Παρόµοια λογική µε τη µετατροπή W σε S Κάθε διεργασια στέλνει αυτές που υποπτεύεται στις υπόλοιπες Για κάθε τέτοιο µήνυµα που λαµβάνει, προσθέτει τις νέες διεργασιες στο σύνολο αυτών που εκτιµά ότι έχουν πέσει Προβληµατική τακτική: Αρχικά µπορει όλες οι εκτιµήσεις να ειναι λάθος Λύση: Οταν µια διεργασια διαπιστωσει ότι λανθασµένα την υποψιάζεται το υπόλοιπο δίκτυο, στέλνει ένα µήνυµα που ακυρώνει το µήνυµα που τη ϑεωρει πεσµένη στις υπόλοιπες Για κάθε τέτοιο µήνυµα που λαµβανεται, εξαιρειται η διεργασια που υποδεικνύει το µήνυµα από το συνολο µε τις εκτιµήσεις της Καθώς το σύστηµα ειναι ασύγχρονο, χρησιµοποιείται ένα ειδος timestamps Από W σε S - Αλγόριθµος Αλγόριθµος q, r : suspectedp(r, q) 0 refutedp(r, q) 0 Task 1: Repeat forever: if(r Wp and refutedp(r, p) suspectedp(r, p)) then broadcast(p, suspectts, r, refutedp(r, p) + 1) Task 2: When p delivers (q, suspects, r, k) : suspectedp(r, q) k if(p = r) then broadcast (p, refutes, q, k) Task 3: When p delivers (r, refutes, q, k) : refutedp(r, q) k Task 4: Repeat forever: r : if q : suspectedp(r, q) > refutedp(r, q) then Sp Sp {r} else Sp Sp {r} Αλγοριθµος µε S 0. Αρχικοποίηση estimatep ip tsp 0 rp 0 statep undecided Κάθε διεργασια διατηρει µεταβλητές για: Την εκτιµησή της για την τιµή απόφασης Timestamp για την τιµή απόφασης Τον ασύγχρονο γύρο που ϐρίσκεται (timestamp στα µηνύµατα) Την κατάσταση απόφασης Αλγοριθµος µε S Ενας ϐρόχος επανάληψης µε 4 ϕάσεις: ωηιλε statep = undecided rp rp + 1 cp rp mod n + 1 1. Φάση ανταλλαγής εκτιµήσεων p sends (p, rp, estimatep, tsp) to cp Χρησιµοποιείται η έννοια του rotating coordinator Rotating καθώς κάποιος µπορεί να πέσει Θα γινει αντιληπτός (weak completeness) και ϑα αναλάβει ο επόµενος Οι διεργασίες στέλνουν τις εκτιµήσεις τους στη διεργασια-συντονιστή Αυτή ϑα αποφασισει ποια από αυτές τις εκτιµήσεις πρέπει να επικρατήσει

Αλγοριθµος µε S 2. Φάση επιλογής επικρατούσας τιµής if p = cp wait until [for n f processes q: received(q, rp, estimateq, tsq)] estimatep one estimateq in maxtsq{received(q, rp, estimateq, tsq)} p broadcasts (p, rp, estimatep) Ο συντονιστης συλλέγει τα µηνύµατα που προοριζονται γι αυτον και εσταλησαν στον ίδιο ασύγχρονο γύρο Αποφεύγεται το ενδεχοµενο να λάβει µελλοντικά µηνύµατα που προοριζονται γι αυτον Αυτά προκύπτουν όταν το υπόλοιπο δικτυο ολοκληρωσει έναν κύκλο αλλαγής συντονιστων Επιλέγει να επικρατήσει η τιµή που ανανεώθηκε πιο πρόσφατα Αλγοριθµος µε S 3. Φάση αποδοχης επικρατούσας τιµής wait until [received(cp, rp, estimatecp) or cp Sp] if[recevied(cp, rp, estimatecp)] then estimatep estimatecp tsp rp p sends (p, rp, ack) to cp else p sends (p, rp, nack) to cp Οι διεργασίες ενηµερώνονται από το συντονιστή Απαντούν αν έλαβαν την ενηµέρωση η όχι Σε κάθε περίπτωση η εκτελεση συνεχίζεται από όλες τις διεργασίες Οι τιµές estimatep και tsp ανανεώνονται ταυτοχρονα Εν γενει σε µερικές µόνο διεργασιες Αλγοριθµος µε S Συµφωνία στην απόφαση 4. Φάση απόφασης από το συντονιστή if p = cp then wait until [for n f processes q:(received(r, qp, ack) or (q, rp, nack)] if received n f (q, rp, ack) then broadcast(p, rp, estimatep, decide) Αν η πλειονότητα των διεργασιών έχει υιοθετησει την εκτιµηση του συντονιστή, τις καλει να αποφασισουν σε αυτήν Ωστοσο το δίκτυο έχει προχωρήσει σε εκτέλεση νέου γύρου, µε νέο συντονιστη Πως εγγυόµαστε ότι ο νέος συντονιστης δεν ϑα επιβαλλει απόφαση σε διαφορετική τιµή; 3. Φάση αποδοχης επικρατούσας τιµής estimatep estimatecp tsp rp p sends (p, rp, ack) to cp Αφού εσταλη µήνυµα απόφασης, πάνω από τις µισές διεργασιες ειχαν ανανεώσει τις µεταβλητές τους

Συµφωνία στην απόφαση Συµφωνία στην απόφαση 2. Φάση επιλογής επικρατούσας τιµής wait until [for n f processes q: received(q, rp, estimateq, tsq)] estimatep one estimateq in maxtsq{received(q, rp, estimateq, tsq)} Πριν επιλεχθεί εκτιµώµενη τιµή από το νέο συντονιστή, ϑα πρέπει να συµβολευθεί επίσης πάνω από τις µισες διεργασίες Τουλάχιστον µία απ αυτες έχει εκτελέσει ανανέωση στη ϕάση 3 Αυτή η εκτιµηση ϑα έχει το µεγαλύτερο timestamp και τελικά ϑα επικρατησει Συνεπώς άπαξ και σταλει µήνυµα απόφασης η εκτίµηση που περιέχει ϑα κερδιζει ολες τις άλλες εκτιµήσεις στις επιλογές των µελλοντικών συντονιστων Ετσι δεν προκειτε να σταλει νέο µήνυµα απόφασης µε άλλη τιµή Ωστόσο εν γενει ϑα σταλούν και άλλα µηνύµατα απόφασης εν απόφασιζουν όλες οι διεργασιες υπό τον ίδιο συντονιστή Ωστόσο αποφασιζουν στην ίδια τιµή Τερµατισµος Παράδειγµα εκτέλεσης αλγορίθµου - 1 Είδαµε πως η απόφαση γινεται σε κοινή τιµή Πώς ξέρουµε ότι ϑα παρθεί απόφαση; 3. Φάση αποδοχης επικρατούσας τιµής wait until [received(cp, rp, estimatecp) or cp Sp] if[recevied(cp, rp, estimatecp)] then p sends (p, rp, ack) to cp else p sends (p, rp, nack) to cp Eventual Accuracy: Μετά από κάποια στιγµή, µια διεργασια που δεν πέφτει δε ϑα εκτιµηθει ως προβληµατική Κάποια στιγµή ϑα γίνει συντονιστής Το δίκτυο ϑα την ακούσει και ϑα στείλει τον απαραίτητο αριθµο acks Ο συντονιστης ϑα απαντήσει µε µήνυµα απόφασης 1 r1 = 0 1 ts1 = 0 1 0 r3 = 0 0 ts3 = 0 3 r2 = 0 1 2 ts2 = 0 1 r4 = 0 1 4 ts4 = 0 1 Αρχικοποίηση Οι δεργασίες αρχικοποιούν τις µεταβλητές tsi Αρχικά κάθε διεργασια εκτιµά ότι ϑα επικρατήσει η τιµή της Κατα την εκτέλεση δε ϑα πρέπει να πέσει πάνω από µία διεργασία f < n/2

Παράδειγµα εκτέλεσης αλγορίθµου - 2 Παράδειγµα εκτέλεσης αλγορίθµου - 3 1 r1 = 0 (2, 0, 1, 0) 1 ts1 = 0 1 (4, 0, 1, 0) (3, 0, 0, 0) 0 r3 = 0 0 ts3 = 0 3 Φάση 1 r2 = 0 1 Οι δεργασίες 2 3 και 4 2 ts2 = 0 1 µπαίνουν στη ϕάση 1 του πρώτου γύρου Βλέπουν ως coordinator τη διεργασια 1 Στέλνουν τις εκτιµήσεις τους r4 = 0 1 και µπαίνουν στη ϕάση 3 4 ts4 = 0 1 1 r1 = 0 (2, 0, nack) 1 ts1 = 0 1 (4, 0, nack) (3, 0, nack) 0 r3 = 0 0 ts3 = 0 3 Φάση 3 r2 = 0 1 Η 1 αργεί πολύ να 2 ts2 = 0 1 απαντήσει Οι διεργασιες 2,3 και 4 εκτιµούν ότι έχει πέσει Στέλνουν nacks για να ενηµερώσουν την 1 ότι δε r4 = 0 1 την έχουν λάβει υπόψιν 4 ts4 = 0 1 τους ως coordinator Παράδειγµα εκτέλεσης αλγορίθµου - 4 Παράδειγµα εκτέλεσης αλγορίθµου - 5 Φάση 2 1 r1 = 0 1 ts1 = 0 1 0 r3 = 1 0 ts3 = 0 3 (3, 1, 0, 0) 2 ts2 = 0 1 (4, 1, 1, 0) r4 = 1 1 4 ts4 = 0 1 Φάση 1 Η διεργασία 2 γίνεται συντονιστής στον επόµενο γύρο Λαµβάνει τις εκτιµήσεις των 3 και 4 Η διεργασία 1 λαµβανει τις εκτιµήσεις που προοριζονταν γι αυτήν στον προηγούµενο γυρο 1 r1 = 0 0 ts1 = 0 1 (1, 0, 0) 0 r3 = 1 0 ts3 = 0 3 (2, 1, 1) (1, 0, 0) (2, 1, 1) (1, 0, 0) (2, 1, 1) 2 ts2 = 0 1 r4 = 1 1 4 ts4 = 0 1 Η διεργασία 2 αποφασίζει για το ποια εκτίµηση ϑα επικρατήσει Επιλέγει να επικρατήσει η δική της Ανανεώνει το timestamp Ενηµερώνει τις υπόλοιπες Η διεργασια 1 ϑεωρεί ακόµα ότι είναι συντονιστής Εκτελεί την ίδια διαδικασια και επιλέγει ως επικρατούσα την τιµή 0 της 3

Παράδειγµα εκτέλεσης αλγορίθµου - 6 Παράδειγµα εκτέλεσης αλγορίθµου - 7 1 r1 = 0 0 ts1 = 0 1 0 r3 = 1 1 ts3 = 1 3 (3, 1, ack) 2 ts2 = 1 1 (4, 1, ack) r4 = 1 1 4 ts4 = 1 1 Φάση 3 Η διεργασία 1 λαµβάνει τα nacks που έχουν επίσης σταλει από τις υπόλοιπες Εγκαταλείπει την ϑέση του coordinator Τα µηνύµατα της διεργασιας 2 λαµβανονται και υιοθετούνται από τις 3 και 4 Οι οποίες ανανεώνουν τα timestamps τους και απαντούν µε acks N, Y, N, N 1 r1 = 1 0 ts1 = 0 1 0 r3 = 1 1 ts3 = 1 3 (2, 1, 1, dec) (2, 1, 1, dec) (2, 1, 1, dec) 2 ts2 = 1 1 r4 = 1 1 4 ts4 = 1 1 Φάση 4 Η διεργασια συντονιστής ϐλέπει ότι έχει την πλειονότητα του δικτύου µε το µέρος της Εκπέµπει ένα µήνυµα απόφασης Η ίδια αποφασίζει και τερµατίζει Η διεργασια 1 εκτελεί καθυστερηµένα το γυρο 1, ωστόσο τα µηνύµατα της 2 αργούν τα ϕτάσουν κι έτσι ϑεωρεί ότι έχει πέσει. Παράδειγµα εκτέλεσης αλγορίθµου - 8 Παράδειγµα εκτέλεσης αλγορίθµου - 9 Φάση 1 N, Y, N, N 1 r1 = 2 0 ts1 = 0 1 (1, 2, 0, 0) 0 r3 = 2 1 ts3 = 1 3 (4, 2, 1, 1) 2 ts2 = 1 1 r4 = 2 1 4 ts4 = 1 1 Οι διεργασιες 3 και 4 µπαίνουν µαζι στον γύρο 2 Η διεργασία 3 γίνεται συντονιστής Περιµένει να λάβει µηνύµατα από δύο διεργασίες Τελικά µπαίνει και η 1 στο γύρο 2 Τελικά η 3 λαµβανει µηνύµατα από τις 1 και 4 N, Y, N, N 1 r1 = 2 0 ts1 = 0 1 (3, 2, 1) (3, 2, 1) 0 r3 = 2 1 ts3 = 1 3 (3, 2, 1) 2 ts2 = 1 1 r4 = 2 1 4 ts4 = 1 1 Φάση 2 Η διεργασία συντονιστής ϑα επιλέξει αναγκαστικά την τιµή 1 Αυτή έχει το µεγαλύτερο timestamp Ενηµερώνει τις υπόλοιπες για την απόφασή της

Παράδειγµα εκτέλεσης αλγορίθµου - 10 Παράδειγµα εκτέλεσης αλγορίθµου - 11 N, Y, N, N 1 r1 = 2 1 ts1 = 2 1 (1, 2, ack) 0 r3 = 2 1 ts3 = 2 3 (4, 2, ack) 2 ts2 = 1 1 r4 = 2 1 4 ts4 = 2 1 Φάση 2 Οι διεργασιες 1 και 4 λαµβάνουν την εκτιµιση του συντονιστή Ενηµερώνουν τις µεταβλητές τους Απαντούν µε µήνυµα ack N, Y, N, N 1 r1 = 2 1 ts1 = 2 1 (3, 2, 1, dec) (3, 2, 1, dec) 0 r3 = 2 1 ts3 = 2 3 (3, 2, 1, dec) 2 ts2 = 1 1 r4 = 2 1 4 ts4 = 2 1 Φάση 2 Ο συντονιστής ϐλέπει ότι έχει την πλειονότητα του δικτύου µε το µέρος του Στέλνει µηνύµατα απόφασης Ωστόσο καθώς τα στέλνει πέφτει Παράδειγµα εκτέλεσης αλγορίθµου - 12 Παράδειγµα εκτέλεσης αλγορίθµου - 13 Φάση 2 N, Y, N, N 1 r1 = 3 1 ts1 = 2 1 0 r3 = 2 1 ts3 = 2 3 (1, 3, 1, 2) Φάση 2 Οι διεργασίες 1 και 4 µπαίνουν µαζι σε νέο γύρο 2 ts2 = 1 1 Η διεργασια 4 αναλαµβάνει συντονιστής Η διεργασια 1 της στέλνει την τιµή της εν υπάρχει άλλη r4 = 3 1 διεργασια που ϑα στειλει 4 ts4 = 2 1 τιµή Η 4 µπλοκάρει N, Y, N, Y 1 r1 = 4 1 ts1 = 2 1 0 r3 = 2 1 ts3 = 2 3 2 ts2 = 1 1 r4 = 3 1 4 ts4 = 2 1 Η διεργασια 1 ϑεωρει ότι η 4 έχει πέσει Ξεκινά νέο γύρο και αναλαµβάνει συντονιστης ε λαµβάνει καµία τιµή - µπλοκάρει Μηνύµατα απόφασης έχουν σταλεί από τις διεργασίες 2 και 3 µε την τιµή 1 Κάποια στιγµή παραλαµβάνονται από τις 1 και 4 οι οποίες αποφασιζουν

Bottomline Περιορισµός στις προβληµατικές διεργασίες Το προβληµα λύνεται και µε failure detectors που κάνουν αµέτρητα σφάλµατα (µε περιορισµό στις προβληµατικές διεργασιες (f < n/2) ) Αρκεί από κάποια στιγµή και µετά αυτά να περιοριστούν Στην πραγµατικότητα αρκει να περιοριστούν για ένα χρονικό διάστηµα αρκετο ώστε να αποφασισει το δίκτυο Eventual: Επιβάλλει έναν αλγόριθµο που εκτελειται σε ϐροχο επανάληψης Είναι σηµαντικό όσο γίνονται σφαλµατα να µην παιρνεται απόφαση Ο ϐροχος ξαναεκτελειται Τα προβλήµατα που εντοπίσαµε στον προηγούµενο αλγοριθµο (µε την κλάση S) διατηρούνται (Κανένας ντετερµινιστος στη λήψη αποφάσεων, η συµφωνία µπορει να αφορά τιµή διεργασιας που έχει πέσει...) Το προβληµα λύνεται µε S όταν f < n/2 Τι γινεται αν υποθέσουµε f n/2 Περιορισµός στις προβληµατικές διεργασίες Περιορισµός στις προβληµατικές διεργασίες Impossibility ιαµερίζουµε το σύνολο των διεργασιών σε ισοπληθή S0, S1 Κάθε σωστος αλγοριθµος οδηγεί το Si σε τερµατισµο ακόµα και αν το S i έχει πέσει Το S0 εκτελείται αργά, έτσι το S1 εκτιµά ότι το S0 έχει πέσει "Eventual" Accuracy: Αρχικά τα λάθη επιτρεπονται Το S1 εκτελει αλγοριθµο και αποφασιζει Το S0 εκτιµά ότι το S1 έχει πέσει "Eventual" Accuracy: Αρχικά τα λάθη επιτρεπονται Το S0 εκτελεί αλγοριθµο και αποφασιζει. Οι αποφάσεις πάρθηκαν αυτόνοµα από τα επιµέρους υποδικτυα Είναι εν γένει διαφορετικές Τα τµήµατα S0 και S1 του δικτύου εκτελούνται αυτόνοµα, καταλήγοντας σε εν γένει διαφορετικές αποφάσεις S0 0 S1 1

Περιορισµός στις προβληµατικές διεργασίες Κατηγοριοποίηση Πού αποτυγχάνει η παραπάνω λογική για την κλάση S ή όταν f < n/2; Οταν f < n/2 S0 S1 Τα τµήµατα επικαλύπτονται: οι κοινές διεργασίες συντονίζουν Χρησιµοποιώντας την κλάση S S0 P S1 Τα τµήµατα εµπιστεύονται την P: αυτή συντονίζει Εξετασαµε failure detectors που παρέχουν αρκετή πληροφορία για τη λύση του consensus Είναι όµως και αναγκαια; εδοµένου ενός προβλήµατος, ποια είναι η ασθενέστερη κλάση failure detectors που το λύνει; Ποια ειναι η ελάχιστη µη τετριµένη πληροφορία που πρέπει να παρέχουµε ώστε να παρακαµφθεί το impossibility result; Προβλήµατα κατηγοριοποιούνται µε ϐάση το κριτίριο αυτό Κατηγοριοποίηση Επιλυσιµότητα για διάφορα κατανεµηµένα υπολογιστικά µοντέλα: Αλλες κλάσεις failure detectors Καθώς προσεγγιζουµε άλλα προβλήµατα και άλλους τύπους σφαλµάτων προκύπτουν νέες κλάσεις failure detectors Clock Synchronization TRB Interactive Consistency Consensus Atomic Broadcast Reliable Broadcast Synchronous Systems Asynchronous systems using P Asynchronous systems using W Asynchronous Systems Ω Equivalent with W Weakest for solving Consensus?P Anonymously Perfect Non-Blocking Atomic Commit HB Heartbeat Quiescent Communication (link failures) Y Weakest Ever The Minimal yet Non-Trivial Failure Information......... ιαφοροποιούνται ως προς το ειδος της πληροφορίας που παρέχουν Τα ϐασικά χαρακτηριστικά που αναφέραµε παραµένουν ίδια Η πληροφορία που παρέχουν χαρακτηρίζεται από τις µετρικές Completeness και Accuracy

Αλλες κλάσεις failure detectors - ιαφορετικές Προσεγγισεις Υλοποιήσιµοι Perfect Failure Detectors - εν κάνουν λάθη! Προκαλούν λάθη Κάθε failure detector που υποψιάζεται ότι µια διεργασια p έχει πέσει ενηµερώνει το δίκτυο Ακόµα κι αν κάνει λάθος, µόλις η p λάβει την ενηµέρωση τερµατίζει οικειοθελώς Οι failure detectors επιβάλλουν την άποψή τους στο δικτυο Εφαµρόσιµο µόνο όταν οι λάθος εκτιµήσεις ειναι εξερετικά σπάνιες Failure Detectors σε συγχρονα δίκτυα Χρησιµοποιούνται για να ϐελτιώσουν την πολυπλοκότητα Γενικά κάθε σύγχρονος γυρος διαρκεί χρόνο D Κάθε διεργασια που πέφτει τη στιγµή t γινεται αντιληπτή τη στιγµή t + d Αποδοτικότερες λύσεις όταν d << D Σύνοψη 8 ης ιάλεξης Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Μοντελοποίηση Ασύγχρονων Συστηµάτων Ασύγχρονα Κατανεµηµένα Συστήµατα Σφάλµατα σε Ασύγχρονα Συστήµατα Αδυναµία Εύρεσης Λύσης Ανιχνευτές Σφαλµάτων Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενο Μάθηµα Σύνοψη Μαθήµατος Συζήτηση Ασύγχρονα Κατανεµηµένα Συστήµατα Σφάλµατα ιεργασιών Αδυναµία Εύρεσης Λύσης Ανιχνευτές Σφαλµάτων Σφάλµατα σε ασύγχρονα κατανεµηµένα συστηµατα οδηγούν σε αδυναµία λύσης πολλών προβληµάτων Για να παρακαµφθούν εισάγουµε το module του Failure Detector Εχει την ικανότητα να κάνει εκτιµήσεις για το ποιες διεργασίες έχουν πέσει Οι εκτιµήσεις χαρακτηρίζονται από µετρικές ακρίβειας και πληρότητας Για κάθε πρόβληµα µας ενδιαφέρει ποια η ασθενέστερη κλάση failure detectors που είναι αναγκαια και ικανή για τη λύση του Στην περίπτωση του Consensus είδαµε δυο λύσεις µε διαφορετικούς περιορισµούς και δυνατότητες failure detection

Βιβλιογραφία (1) Βιβλιογραφία (2) 1. Michel Raynal: A Short Introduction to Failure Detectors for Asynchronous Distributed Systems. ACM SIGACT News, Volume 36(1), 53-70, 2005. 2. Felix C. Gartner: A Gentle Introduction to Failure Detectors and Related Subjects. 1. Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson: Impossibility of Distributed Consensus with One Faulty Process. Journal of the ACM (JACM), Volume 32(2), 374-382, 1985. 2. Tushar Deepak Chandra and Sam Toueg: Unreliable Failure Detectors for Reliable Distributed Systems. Journal of the ACM (JACM), Volume 43(2), 225-267, 1996. 3. Tushar Deepak Chandra, Vassos Hadzilacos, and Sam Toueg: The weakest failure detector for solving consensus. In Proc. 11th annual ACM symposium on Principles of distributed computing (PODC), pp. 147-158, 1992. 4. Marcos Kawazoe Aguilera, Wei Chen, and Sam Toueg: On Quiescent Reliable Communication. SIAM Journal on Computing, Volume 29(6), 2040-2073, 2000. Επόµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Πρόβληµα Συγχρονισµού Συγχρονιστές Φυσικά Ρολόγια Συγχρονισµός Ρολογιών