Σύγχρονα Κατανεμημένα Συστήματα 13 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου
Περίληψη 1 Σύγχρονα Κατανεμημένα Συστήματα 2 Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS
1 Σύγχρονα Κατανεμημένα Συστήματα 2 Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS
Σύγχρονο δικτυακό σύστημα Αποτελείται από μια συλλογή υπολογιστικών στοιχείων που βρίσκονται στους κόμβους ενός δικτύου Θεωρούμε ότι τα υπολογιστικά στοιχεία είναι διεργασίες Οι διεργασίες είναι συνδεδεμένες με ένα συνεκτικό δίκτυο (υπάρχει μονοπάτι μεταξύ οποιουδήποτε ζεύγους διεργασιών) Μοντελοποιούμε το δίκτυο ως ένα κατευθυνόμενο γράφημα G = (V, E) που ορίζεται από 1 Ένα πεπερασμένο σύνολο V απο κόμβους ή κορυφές που αντιστοιχούν στις διεργασίες του συστήματος Συμβολίζουμε n = V 2 Ένα σύνολο κατευθυνόμενων πλευρών ή ακμών E που αποτελείται από διατεταγμένα ζεύγη του V (δηλαδή E V 2 ) και αντιστοιχοούν στα κανάλια επικοινωνίας του δικτύου Συμβολίζουμε m = E
Γειτονικοί κόμβοι Σύγχρονα Κατανεμημένα Συστήματα Μια κορυφή (ή κόμβος) v ονομάζεται εξερχόμενη γειτονική της κορυφής u όταν η (u, v) είναι μια ακμή του G (δηλαδή (u, v) E) Μια κορυφή u ονομάζεται εισερχόμενη γειτονική της κορυφής v όταν η (u, v) είναι μια ακμή του G (δηλαδή (u, v) E) Συμβολίζουμε με out_nbrs i = {j (i, j) E} όλες τις κορυφές που είναι εξερχόμενες γειτονικές της κορυφής i Συμβολίζουμε με in_nbrs i = {j (j, i) E} όλες τις κορυφές που είναι εισερχόμενες γειτονικές της κορυφής i 5 1 8 9 2 6 4 Η 5 είναι εξερχόμενη γειτονική της 8 Η 8 είναι εισερχόμενη γειτονική της 5 out_nbrs 9 = {1, 4} in_nbrs 9 = {2, 5, 6, 8}
Απόσταση και διάμετρος Απόσταση dist(i, j) Είναι το μήκος του συντομότερου κατευθυνόμενου μονοπατιού από τον κόμβο i στον κόμβο j, αν υπάρχει τέτοιο μονοπάτι Διαφορετικά, dist(i, j) = Διάμετρος diam Είναι η μέγιστη απόσταση ανάμεσα σε οποιουσδήποτε δύο κόμβους του δικτύου, δηλαδή diam = max {dist(i, j)} i V,j V 5 1 8 9 dist(6, 1) = 2 diam = 6 2 6 4
Τοπολογία δικτύου και αρχική γνώση Ένας αλγόριθμος μπορεί να σχεδιαστεί για μια συγκεκριμένη τοπολογία δακτύλιο, δένδρο, πλήρες γράφημα, Μερικές φορες μπορεί ένας αλγόριθμος να υποθέσει μια συγκεκριμένη τοπολογία λέμε οτι ο αλγόριθμος έχει αρχική γνώση Ένας αλγόριθμος που απαιτεί πολλές υποθέσεις ως προς το δίκτυο όπου εκτελείται λέγεται ασθενής Διαφορετικά λέμε ότι είναι ισχυρός (επειδή μπορεί να εκτελεστεί σε μεγαλύτερο εύρος πιθανών δικτύων)
Διεργασίες Σύγχρονα Κατανεμημένα Συστήματα Με κάθε κόμβο i σχετίζεται μια διεργασία που χαρακτηρίζεται από 1 Ένα σύνολο καταστάσεων states i, όπου ορισμένες είναι αρχικές καταστάσεις (υποσύνολο start i ) ορισμένες είναι καταστάσεις τερματισμού (υποσύνολο halt i ) 2 Μια γεννήτρια εξερχομένων μηνυμάτων msgs i : states i out_nbrs i M {null}, όπου M είναι το αλφάβητο των μηνυμάτων και με null δηλώνουμε την απουσία μηνύματος: δεδομένης της τρέχουσας κατάστασης, δημιουργεί το πολύ ένα μήνυμα για κάθε εξερχόμενη γειτονική διεργασία 3 Μια συνάρτηση αλλαγής κατάστασης trans i : states i (M {null}) in_nbrs i states i δεδομένης της τρέχουσας κατάστασης και των μηνυμάτων που παραλήφθηκαν, υπολογίζει την επόμενη κατάσταση της διεργασίας
Κανάλια επικοινωνίας Με κάθε ακμή (i, j) σχετίζεται ένα κανάλι επικοινωνίας, ή σύνδεσμος Η επικοινωνία μέσω των καναλιών γίνεται με την ανταλλαγή μηνυμάτων Υποθέτουμε ότι κάθε κανάλι επικοινωνίας μπορεί να κρατάει μόνο ένα μήνυμα τη φορά Θεωρούμε ότι υπάρχει ένα δεδομένο αλφάβητο μηνυμάτων M Το M παραμένει σταθερό Το σύμβολο null δηλώνει την απουσία μηνύματος
Εκτέλεση αλγορίθμου, βήματα και γύροι Όλες οι διεργασίες επαναλαμβάνουν συντονισμένα τα ακόλουθα δύο βήματα: 1ο βήμα 1 Εφαρμογή της γεννήτριας μηνυμάτων για την παραγωγή μηνυμάτων για τους εξερχόμενους γείτονες 2 Αποστολή μηνυμάτων μέσω των αντίστοιχων καναλιών 2ο βήμα 1 Εφαρμογή της συνάρτησης αλλαγής κατάστασης και τη μετάβαση στη νέα κατάσταση 2 Διαγραφή όλων των μηνυμάτων από τα κανάλια Ο συνδυασμός των δύο βημάτων ονομάζεται γύρος
Σύγχρονα Κατανεμημένα Συστήματα Παράδειγμα states u = {a, b, c}, M = {m 1, m 2 } (υπάρχει και το null) msgs u (a, 1) = m 1, msgs u (a, 2) = null, msgs u (a, 3) = m 2 trans u (a, (m 1, m 2, null, m 2 )) = b u 1 2 2 3 3 4 1
Παράδειγμα Σύγχρονα Κατανεμημένα Συστήματα states u = {a, b, c}, M = {m 1, m 2 } (υπάρχει και το null) msgs u (a, 1) = m 1, msgs u (a, 2) = null, msgs u (a, 3) = m 2 1 1 2 u a 3 m msgs 1 null u u a 3 m 2 2
Παράδειγμα Σύγχρονα Κατανεμημένα Συστήματα states u = {a, b, c}, M = {m 1, m 2 } (υπάρχει και το null) trans u (a, (m 1, m 2, null, m 2 )) = b 2 3 m 2 2 3 a null trans u u b u m 1 m 2 1 4 1 4
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην M 1 2 M 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος M 1 2 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα M 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ 1 2 M M 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην 1 2 M M 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2α συν αλλαγής κατ 2β διαγραφή μην 2 oς Γύρος 2α συν αλλαγής κατ 2β διαγραφή μην 2 oς Γύρος
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2β διαγραφή μην 2 oς Γύρος 1 o Βήμα 2β διαγραφή μην 2 oς Γύρος 1 o Βήμα
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην 2 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην M 1 2 M 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος M 1 2 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα M 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ 1 2 M M 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην 1 2 M M 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2α συν αλλαγής κατ 2β διαγραφή μην 3 oς Γύρος 2α συν αλλαγής κατ 2β διαγραφή μην 3 oς Γύρος
Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2β διαγραφή μην 3 oς Γύρος 1 o Βήμα 2β διαγραφή μην 3 oς Γύρος 1 o Βήμα
Εκτέλεση ενός κατανεμημένου αλγoρίθμου (2) Θέλουμε να περιγράψουμε την εκτέλεση ενός κατανεμημένου αλγορίθμου Θεωρούμε μια ακολουθία μεταβάσεων της κατάστασης των διεργασιών του συστήματος που προέρχονται από την αποστολή και παραλαβή μηνυμάτων, εσωτερικές αλλαγές Έστω μια δεδομένη χρονική στιγμή/γύρος r Kάθε διεργασία u στο τέλος του r βρίσκεται σε κάποια κατάσταση από το states u O χαρακτηρισμός της κατάστασης όλων των διεργασιών καθορίζει τη συνολική κατάσταση του συστήματος C r
Εκτέλεση ενός κατανεμημένου αλγόριθμου (3) Στη συνέχεια, οι διεργασίες εκτελούν τον επόμενο γύρο του αλγορίθμου, δηλαδή τον r + 1 Πραγματοποιούνται ορισμένες αποστολές μηνυμάτων M r+1 Πραγματοποιούνται κάποιες παραλαβές μηνυμάτων N r+1 (ο λόγος που διαχωρίζουμε τα δύο σύνολα είναι γιατί σε περιπτώσεις ύπαρξης σφαλμάτων μπορεί τα μηνύματα που παραλαμβάνονται να είναι διαφορετικά από αυτά που στάλθηκαν, πχ να λείπουν κάποια επειδή χάθηκαν) Στο τέλος του γύρου r + 1, το σύστημα λέμε ότι βρίσκεται στην κατάσταση C r+1 Επομένως, η εκτέλεση ενός κατανεμημένου αλγορίθμου μπορεί να οριστεί ως μια άπειρη ακολουθία C 0, M 1, N 1, C 1, M 2, N 2, C 2,
Είσοδοι και έξοδοι Σύγχρονα Κατανεμημένα Συστήματα Σύμβαση: H είσοδος και η έξοδος του κατανεμημένου αλγορίθμου είναι κωδικοποιημένη στις καταστάσεις Η είσοδος δίνεται από μεταβλητές εισόδου στις αρχικές καταστάσεις Πολλές αρχικές καταστάσεις πολλές διαφορετικές τιμές εισόδου Ο μόνος λόγος που έχουμε πολλές αρχικές καταστάσεις είναι η δυνατότητα διαφορετικών τιμών εισόδου Η έξοδος δίνεται από μεταβλητές εξόδου Μια μεταβητή εξόδου μπορεί να γραφτεί μόνο μία φορά (write-once μεταβλητές), αλλά μπορεί να διαβαστεί όσες φορές χρειαστεί
Σύγχρονα Κατανεμημένα Συστήματα Ορίζουμε δύο τύπους σφαλμάτων: 1 που παρουσιάζονται κατά την αποστολή μηνυμάτων 2 που παρουσιάζονται στις υπολογιστικές μονάδες (στους επεξεργαστές) Σφάλμα επικοινωνίας: αποτυχία κατά την αποστολή ενός μηνύματος σε ένα κανάλι του δικτύου Τερματικό σφάλμα: Η διεργασία σταματάει είτε πριν, είτε μετά, είτε κατά την εκτέλεση κάποιου τμήματος του 1ου ή του 2ου βήματος ενός γύρου Επομένως, μπορεί να συμβεί ένα σφάλμα κατά την παραγωγή των μηνυμάτων, οπότε να σταλεί ένα μέρος των εξερχόμενων μηνυμάτων
Βυζαντινά σφάλματα Το δίκτυο περιέχει ελαττωματικές διεργασίες που δεν σταματούν αλλά συνεχίζουν να συμμετέχουν στην εκτέλεση του αλγορίθμου Η συμπεριφορά των διεργασιών μπορεί να είναι τελείως ανεξέλεγκτη Η εσωτερική κατάσταση μιας ελαττωματικής διεργασίας μπορεί να αλλάξει κατά τη διάρκεια ενός γύρου χωρίς να υπάρχει κάποιο μήνυμα Μια ελαττωματική διεργασία μπορεί να στείλει μηνύματα με οποιοδήποτε περιεχόμενο, ανεξάρτητα από τις οδηγίες του κατανεμημένου αλγορίθμου που θα έπρεπε να τρέχει Ονομάζουμε τέτοιου είδους σφάλματα Βυζαντινά σφάλματα Μπορούμε να μοντελοποιήσουμε εχθρική συμπεριφορά (πχ θέματα ασφάλειας)
Μέτρηση πολυπλοκότητας Επιλογή κατάλληλου σύγχρονου κατανεμημένου αλγόριθμου: Πως μπορούμε να μετρήσουμε την απόδοση; Χρησιμοποιούμε δύο μετρικές για τη μέτρηση της πολυπλοκότητας των κατανεμημένων αλγόριθμων: 1 χρόνου 2 επικοινωνίας
Χρονική πολυπλοκότητα Χρονική πολυπλοκότητα Η χρονική πολυπλοκότητα σε ένα σύγχρονο σύστημα ορίζεται ως το πλήθος των γύρων που απαιτούνται για να παραχθούν όλες οι ζητούμενες έξοδοι, ή μέχρι να τερματιστούν όλες οι διεργασίες (δηλ να βρεθούν σε μια τερματική κατάσταση) Σχετίζεται άμεσα με τον χρόνο εκτέλεσης Στην πράξη, ο χρόνος εκτέλεσης ενός κατανεμημένου αλγόριθμου είναι η πιο σημαντική μετρική της απόδοσης
επικοινωνίας (1) επικοινωνίας Η πολυπλοκότητα επικοινωνίας ενός σύγχρονου συστήματος ορίζεται ως ο συνολικός αριθμός μη μηδενικών μηνυμάτων (δηλ δεν προσμετρούνται τα null μηνύματα) που αποστέλλονται Μερικές φορές, υπολογίζεται επίσης και ο αριθμός των bits των μηνυμάτων Θέμα μελέτης όταν ο όγκος των μηνυμάτων προκαλεί συμφόρηση στο δίκτυο: επιβραδύνεται η εκτέλεση του αλγορίθμου
επικοινωνίας (2) Σε πραγματικές συνθήκες: Εκτελούνται ταυτόχρονα πολλοί αλγόριθμοι Μοιράζονται τα ίδια κανάλια επικοινωνίας Πόσο συνεισφέρει κάθε αλγόριθμος στη συνολική συμφόρηση του δικτύου; Δύσκολο να ποσοτικοποιήσουμε την επίδραση που έχουν τα μηνύματα οποιουδήποτε αλγόριθμου στη χρονική απόδοση άλλων αλγορίθμων Γενικότερα, προσπαθούμε να ελαχιστοποιήσουμε τον αριθμό των μηνυμάτων που παράγονται από κάθε αλγόριθμο ξεχωριστά
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS 1 Σύγχρονα Κατανεμημένα Συστήματα 2 Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS
Γενικά Σύγχρονα Κατανεμημένα Συστήματα Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Πρόβλημα εκλογής αρχηγού (leader elec on) Η εκλογή αρχηγού σε ένα δίκτυο απαιτεί την επιλογή μιας μοναδικής διεργασίας που θα βρεθεί στην κατάσταση αρχηγός (ή εκλεγμένη) ενώ όλες οι άλλες διεργασίες βρίσκονται στην κατάσταση μη-αρχηγός (ή μη εκλεγμένη) Παρουσιάστηκε για πρώτη φορά από τον Le Lann (1977) Αποτυπώνει τα βασικά χαρακτηριστικά μιας μεγάλης ομάδας προβλημάτων που αντιμετωπίζουν τα πραγματικά κατανεμημένα συστήματα Παρουσιάζει πολλές παραλλαγές Για αρχή, μελετάμε το πρόβλημα σε δίκτυα δακτυλίου
Περισσότερα από 1 από το καθένα Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ο πλεονασμός (redundancy) είναι μια κοινή τεχνική για την επίτευξη αξιοπιστίας (robustness) σε περίπτωση σφαλμάτων Μερικές φορές μια υπηρεσία εγκαθιστάται σε πολλαπλές μηχανές για λόγους αξιοπιστίας, όμως μόνο μια διεργασία είναι ενεργή σε κάθε χρονική στιγμή Όμως, δεν μπορούμε να καταστήσουμε έναν άνθρωπο (πχ sys admin) υπεύθυνο για την κατάσταση των κρίσιμων διεργασιών Μια αυτοματοποιημένη διαδικασία είναι απαραίτητη για να ενεργοποιεί τις πλεονάζουσες διεργασίες εξασφαλίζοντας πάντα 1 ενεργή διεργασία στο περιβάλλον παραγωγής (produc on environment)
Ορισμός του προβλήματος Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ένας αλγόριθμος λύνει το πρόβλημα εκλογής αρχηγού εφόσον πληροί τις παρακάτω προδιαγραφές: Όλες οι καταστάσεις τερματισμού χωρίζονται σε δύο σύνολα: 1 καταστάσεις που αναδεικνύουν την διεργασία ως εκλεγμένη 2 καταστάσεις που θεωρούν την διεργασία ως μη εκλεγμένη Σε κάθε εκτέλεση του αλγορίθμου: μία και μόνο μία διεργασία είναι εκλεγμένη οι άλλες διεργασίες βρίσκονται σε κατάσταση μη-εκλεγμένη
Δίκτυα δακτυλίου Σύγχρονα Κατανεμημένα Συστήματα Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Θεωρούμε ένα σύγχρονο κατανεμημένο σύστημα από n διεργασίες Είναι τοποθετημένες σε ένα δίκτυο δακτυλίου με n κόμβους Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν τις ταυτότητες των υπολοίπων διεργασιών Μπορούν να ξεχωρίσουν τον δεξιόστροφο γείτονα τους από τον αριστερόστροφο Διεργασίες σε δακτύλιο Θεωρούμε ότι οι κόμβοι είναι αριθμημένοι από το 1 έως το n με δεξιόστροφη κατεύθυνση Οι διεργασίες δεν έχουν γνώση αυτού του τρόπου αρίθμησης
Παραλλαγές Σύγχρονα Κατανεμημένα Συστήματα Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Το πρόβλημα της εκλογής αρχηγού παρουσιάζει πολλές παραλλαγές: Μπορεί να απαιτείται όλες οι διεργασίες που βρίσκονται σε κάποια κατάσταση μη-εκλεγμένη να ανακοινώσουν το γεγονός ότι δεν είναι αρχηγοί, πχ μεταβάλλοντας μια μεταβλητή στην τιμή μη-αρχηγός Ο δακτύλιος μπορεί να είναι είτε μονής είτε διπλής κατεύθυνσης O αριθμός n των κόμβων που εκτελούν τον αλγόριθμο μπορεί να είναι γνωστός ή άγνωστος Οι διεργασίες μπορούν να διαχωριστούν απο τις υπόλοιπες, πχ χρησιμοποιώντας κάποια μοναδική ταυτότητα (unique id, UID) ή όχι Οι ταυτότητες μπορεί να επιλέγονται απο ένα περιορισμένο σύνολο, ή από όλο το σύνολο των θετικών ακέραιων N +
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Aδυναμία αντιμετώπισης του προβλήματος (1) Παρατηρούμε ότι εάν οι διεργασίες δεν μπορούν να διαχωριστούν μεταξύ τους, τότε δεν μπορεί να βρεθεί κάποιος αλγόριθμος που να δίνει λύση στο πρόβλημα Θεώρημα Έστω ένα σύστημα A από n διεργασίες συνδεδεμένες μέσω ενός δικτύου δακτυλίου Αν όλες οι διεργασίες είναι πανομοιότυπες και δεν μπορούν να ξεχωρίσουν η μία την άλλη, τότε κανένας αλγόριθμος δεν μπορεί να λύσει το πρόβλημα εκλογής αρχηγού για το σύστημα A Το θεώρημα ισχύει ακόμα και όταν ο συνολικός αριθμός των διεργασιών n είναι γνωστός σε κάθε διεργασία, ή όταν το δίκτυο έχει συγκεκριμένες ιδιότητες, πχ τα κανάλια είναι μονής ή διπλής κατεύθυνσης
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Aδυναμία αντιμετώπισης του προβλήματος (2) Απόδειξη Χρησιμοποιούμε τη μέθοδο της απαγωγής σε άτοπο Έστω αλγόριθμος που λύνει το πρόβλημα για το A Υποθέτουμε ότι κάθε διεργασία έχει μόνο μία αρχική κατάσταση Άρα το A μπορεί να εκτελεστεί με μοναδικό τρόπο Επαγωγικά: τον γύρο r όλες οι διεργασίες θα βρίσκονται στην ίδια κατάσταση Αν κάποια διεργασία βρεθεί σε κατάσταση εκλεγμένη, τότε όλες οι άλλες διεργασίες θα έχουν βρεθεί στην ίδια κατάσταση, άρα δεν υπάρχει μία και μόνο μία διεργασία αρχηγός
Μοναδικές ταυτότητες Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ο μόνος τρόπος να λύσουμε το πρόβλημα εκλογής αρχηγού είναι να σπάσουμε τη συμμετρία Υπόθεση: οι διεργασίες είναι πανομοιότυπες, με την εξαίρεση ότι έχουν ένα UID
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ο Αλγόριθμος των Le Lann, Chang και Roberts Δεν γνωρίζει τον συνολικό αριθμό των διεργασιών Υποθέτει ότι οι διεργασίες μπορούν να επικοινωνήσουν μόνο προς μία κατεύθυνση (δεξιόστροφα) Βασίζεται σε απλές πράξεις σύγκρισης ταυτοτήτων Αποκεντρικοποιημένος αλγόριθμος
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ο Αλγόριθμος των Le Lann, Chang και Roberts Αλγόριθμος LCR Οι διεργασίες διατηρούν μια μεταβλητή αρχηγός η οποία αρχικά είναι false Oι διεργασίες εκπέμπουν την ταυτότητα τους στο δεξιόστροφο γείτονα τους Μόλις λάβουν μία ταυτότητα απο τον αριστερόστροφο γείτονα, τη συγκρίνουν με την δικιά τους Αν είναι μεγαλύτερη, την προωθούν στον δεξιόστροφο γείτονα Αν είναι μικρότερη, δεν κάνουν τίποτα Αν είναι ίδια, μεταβαίνουν στην κατάσταση εκλεγμένη θέτοντας την μεταβλητή αρχηγός στην τιμή true
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι Εκλογή αρχηγού διεργασία 2
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Χαρακτηριστικά του Αλγόριθμου LCR Έστω n διεργασίες, όπου η διεργασία με τη μεγαλύτερη ταυτότητα είναι η i max Η διεργασία i max εκλέγεται αρχηγός στο τέλος του γύρου n Καμμία διεργασία εκτός της i max δεν είναι σε κατάσταση εκλεγμένη Η χρονική πολυπλοκότητα είναι O(n) Η πολυπλοκότητα επικοινωνίας είναι O(n 2 )
Απόδειξη Ορθότητας (1) Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Η αρίθμηση των διεργασιών είναι modulo n Το μήνυμα που στέλνει η διεργασία i αναφέρεται ως send i Λήμμα Η διεργασία i max εκλέγεται αρχηγός στο τέλος του γύρου n Απόδειξη Μετά απο r γύρους, το send imax +r είναι η ταυτότητα του i max Για r = 0 ισχύει, εφόσον send imax = i max Επαγωγικά, στο τέλος του γύρου r, η διεργασία i max + r λαμβάνει την ταυτότητα του i max και στέλνει send imax +r = i max Άρα στο γύρο n η διεργασία i max 1 θα στείλει στην i max την ταυτότητα της i max οπότε η i max θα θέσει την μεταβλητή αρχηγός στην τιμή true
Απόδειξη Ορθότητας (2) Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Λήμμα Καμμία διεργασία πλην της i max δεν εκλέγεται αρχηγός Απόδειξη Για κάθε διεργασία i σε οποιοδήποτε γύρο r οι διεργασίες i max, i max+1,, i 1, i δεν θα στείλουν την ταυτότητα της i Άρα η i δεν θα λάβει ποτέ την ταυτότητα της επομένως δεν θα θέσει ποτέ την μεταβλητή αρχηγός στην τιμή true Θεώρημα Ο αλγόριθμος LCR λύνει το πρόβλημα της εκλογής αρχηγού σε σύγχρονα δίκτυα δακτυλίου
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ο Αλγόριθμος των Hirschberg και Sinclair (HS) Βελτιώνει την πολυπλοκότητα επικοινωνίας σε O(n log n) διατηρώντας τον χρόνο O(n) Δεν γνωρίζει τον συνολικό αριθμό των διεργασιών Υποθέτει επικοινωνία διπλής κατεύθυνσης Βασίζεται σε απλές πράξεις σύγκρισης ταυτοτήτων Όπως και ο LCR εκλέγει τη διεργασία με το μεγαλύτερο UID
Αλγόριθμος HS (άτυπη περιγραφή) Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Ο υπολογισμός χωρίζεται σε φάσεις l = 0, 1, Σε κάθε φάση l, κάθε awake διεργασία i στέλνει σκυτάλες που περιλαμβάνουν το UID της, u i, και προς τις δύο κατευθύνσεις Κάθε σκυτάλη προσπαθεί να ταξιδέψει απόσταση 2 l και έπειτα να επιστρέψει στην i Αν και οι δύο σκυτάλες της i επιστρέψουν, τότε η i συνεχίζει στην επόμενη φάση (παραμένει awake), αλλιώς σταματάει να παράγει σκυτάλες (συνεχίζει όμως να προωθεί σκυτάλες άλλων διεργασιών) Μία σκυτάλη της i χάνεται αν καθώς απομακρύνεται από την i συναντήσει διεργασία της οποίας το UID είναι μεγαλύτερο από το δικό της
Αλγόριθμος HS (άτυπη περιγραφή) Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αν μία σκυτάλη της i, καθώς απομακρύνεται από την i, συναντήσει την i, τότε έχει διαγράψει μια πλήρη περιστροφή και η i εκλέγεται αρχηγός Οι σκυτάλες που ταξιδεύουν προς τα μέσα (δηλ κατά την επιστροφή τους) προωθούνται από όλες τις διεργασίες χωρίς έλεγχο Για να ξέρουν πόσο πρέπει να ταξιδέψουν οι σκυτάλες, η i τους συμπεριλαμβάνει έναν μετρητή απόστασης (hop-count)
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αλγόριθμος HS: Ανάλυση πολυπλοκότητας επικοινωνίας Θεώρημα Η πολυπλοκότητα επικοινωνίας του αλγορίθμου HS είναι O(n log n) Απόδειξη Στη φάση 0, και οι n διεργασίες στέλνουν δύο σκυτάλες για ένα βήμα προς τα έξω και ένα προς τα μέσα (απόσταση 2 0 ) δηλαδή 4 βήματα, άρα συνολικά 4n μηνύματα Στη φάση l > 0, η i στέλνει σκυτάλη μόνο εάν είχε παραλάβει και τις δύο σκυτάλες της στη φάση l 1 Στη φάση l 1, παρατηρούμε ότι η i στέλνει σκυτάλη σε απόσταση 2 l 1 και λαμβάνει σκυτάλη από όλες τις διεργασίες που είναι ακόμα awake σε αυτό το υποδιάστημα του δακτυλίου Επομένως, σε κάθε υποδιάστημα μήκους 2 l 1 + 1 κόμβων, όλες οι awake διεργασίες θα ανταλλάξουν μεταξύ τους σκυτάλες
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αλγόριθμος HS: Ανάλυση πολυπλοκότητας επικοινωνίας Απόδειξη Παρατηρούμε ότι μεταξύ αυτών υπάρχει ένα μοναδικό μέγιστο UID (σε κάθε διάστημα υπάρχει ένα μέγιστο) επομένως το πολύ μία από αυτές τις διεργασίες θα παραμείνει awake στην επόμενη φάση Επομένως, αν χωρίσουμε τον δακτύλιο αυθαίρετα σε διαστήματα μήκους 2 l 1 n + 1, παίρνουμε διαστήματα (ένα από αυτά 2 l 1 +1 μπορεί να έχει μικρότερο μήκος) και απ το καθένα περνάει το πολύ μία διεργασία στη φάση l Άρα, το πολύ n 2 l 1 +1 διεργασίες στέλνουν σκυτάλες στη φάση l Κάθε τέτοια σκυτάλη θα ταξιδέψει απόσταση 2 l προς τα έξω, επί 2 για να επιστρέψει, επί 2 γιατί κάθε διεργασία στέλνει δύο σκυτάλες, επί # awake κόμβων Άρα, το πλήθος των μηνυμάτων στη φάση l είναι 4 2 l n 2 l 1 + 1 = 8 2l 1 n 2 l 1 + 1
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αλγόριθμος HS: Ανάλυση πολυπλοκότητας επικοινωνίας Απόδειξη 4 2 l n 2 l 1 + 1 = 8 n 2l 1 2 l 1 + 1 ( n ) < 8 2 l 1 2 l 1 + 1 = 8(n + 2 l 1 ) 8(n + 2 log n 1 ) < 8(n + 2 log n ) = 16n Η προτελευταία ανισότητα προκύπτει επειδή l log n Αυτό ισχύει διότι όταν l = log n τότε η σκυτάλη της i max θα ταξιδέψει 2 log n n βήματα και άρα θα συναντήσει την i max και ο αλγόριθμος θα τερματίσει Αν λάβουμε υπόψη και τη φάση 0, ο συνολικός αριθμός των φάσεων είναι 1 + log n
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αλγόριθμος HS: Ανάλυση πολυπλοκότητας επικοινωνίας Απόδειξη Άρα ο συνολικός αριθμός μηνυμάτων είναι 1 + log n φάσεις επί 16n μηνύματα σε κάθε φάση = O(n log n)
Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αλγόριθμος HS: Ανάλυση χρονικής πολυπλοκότητας Θεώρημα Η χρονική πολυπλοκότητα του αλγορίθμου HS είναι O(n) Απόδειξη Η φάση l παίρνει χρόνο 2 2 l = 2 l+1, γιατί τα tokens ταξιδεύουν απόσταση 2 l με επιστροφή Η προτελευταία φάση είναι η l = log n 1 και παίρνει χρόνο μεγαλύτερο από όλες οι προηγούμενες φάσεις μαζί, επειδή ισχύει ότι, x 1, 2 x > x 1 i=0 2i (απόδειξη με επαγωγή) Επομένως, όλες οι φάσεις μέχρι και την προτελευταία παίρνουν μαζί χρόνο μικρότερο από 2 2 log n Η τελευταία φάση παίρνει χρόνο n Άρα ο συνολικός χρόνος είναι < 2 2 log n + n δηλαδή O(n)
Περαιτέρω βελτιώσεις Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS Αν η μόνη πράξη που επιτρέπεται να εφαρμόσουν οι διεργασίες πάνω στα UIDs είναι η σύγκριση, τότε είναι αδύνατον να κατασκευάσουμε αλγόριθμο που να επιτυγχάνει πολυπλοκότητα επικοινωνίας ασυμπτωτικά καλύτερη από n log n Σε αυτή την περίπτωση λέμε ότι υπάρχει κάτω φράγμα Ω(n log n) στην πολυπλοκότητα μηνυμάτων Αν επιτρέψουμε πιο σύνθετο χειρισμό των UIDs (πχ αν επιτρέψουμε γενικές αριθμητικές πράξεις) τότε το παραπάνω κάτω φράγμα παύει να ισχύει και μπορούμε να κατασκευάσουμε αλγορίθμους που επιτυγχάνουν πολυπλοκότητα μηνυμάτων O(n)
Σύγχρονα Κατανεμημένα Συστήματα Σύνοψη μαθήματος Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού σε δίκτυα δακτυλίου Αλγόριθμος των Le Lann, Chang και Roberts Αλγόριθμος των Hirschberg και Sinclair
Βιβλιογραφία Σύγχρονα Κατανεμημένα Συστήματα Σημειώσεις του μαθήματος Βιβλίο Distributed Algorithms (NLynch) 1 Κεφάλαιο 2: Modelling I: Synchronous Network Model 2 Κεφάλαιο 3: Leader Elec on in a Synchronous Ring Ενότητες 31 έως και 35 Βιβλίο Κατανεμημένα Συστήματα με Java (ΙΚ Κάβουρας, ΙΖ Μήλης, ΓΒ Ξυλωμένος, ΑΑ Ρουκουνάκη) 1 Κεφάλαιο 6: Εκλογή Αρχηγού