Chord: A Scalable Peer -to-peer Lookup Service for Internet Applications Authors: Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan Section 5.2 Παρουσίαση: Χριστοδουλίδου Μαρία Μαργαρίτη Σπυριδούλα
Failures and Replication Όταν ένας κόμβος n αποτύχει, τότε οι κόμβοι που τον περιλάμβαναν στα finger tables πρέπει να βρουν τον επόμενό του στο δακτύλιο (n’s successor) Η αποτυχία του δεν πρέπει να διακόπτει τις αναζητήσεις που βρίσκονται σε εξέλιξη Κάθε κόμβος διατηρεί μια successor-list από τους r κοντινότερους successors Αν ένας κόμβος παρατηρήσει ότι ο επόμενός του απέτυχε, τότε τον αντικαθιστά με τον πρώτο ενεργό κόμβο της λίστας. Στη διάρκεια της διαδικασίας stabilization, ενημερώνονται τα finger tables και οι successor lists
Failures and Replication Κάθε κόμβος μπορεί να διατηρεί εναλλακτικούς κόμβους για κάθε καταχώρηση του finger table, δηλαδή τον επόμενο κάθε finger Αν το μέγεθος του finger table είναι μικρό, η successor list μπορεί να χρησιμοποιηθεί για αυτό το σκοπό Η successor list μπορεί να χρησιμοποιηθεί για τη δημιουργία αντιγράφων αντίγραφα δεδομένων με κλειδί key μπορεί να δημιουργηθούν σε k κόμβους που ακολουθούν το κλειδί
Παράδειγμα r= , , 14 [5, 6, 9] [6, 9, 12] [9, 12, 14] [12, 14, 15] [14, 15, 3] [15, 3, 5] [3, 5, 6]
Θεωρήματα n Αν r = O(log N) σε ένα αρχικά σταθεροποιημένο (stable) δίκτυο και κάθε κόμβος αποτυγχάνει με πιθανότητα ½, τότε με μεγάλη πιθανότητα μια find_successor αναζήτηση θα: u επιστρέψει τον κοντινότερο στο κλειδί που αναζητείται successor u ολοκληρωθεί σε χρόνο O(log N)