Κινητά και Διάχυτα Συστήματα. Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός

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

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

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

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

Τεχνολογία Πολυμέσων. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Ειδικά Θέματα Δικτύων Ι

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

Τεχνολογία Πολυμέσων. Ενότητα # 7: Θεωρία πληροφορίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 20: Υπηρεσίες καλύτερης προσπάθειας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Δομημένος Προγραμματισμός

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Ειδικά Θέματα Δικτύων ΙΙ

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

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

Ειδικά Θέματα Δικτύων Ι

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

Ειδικά Θέματα Δικτύων Ι

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Κεφ.11: Ευρετήρια και Κατακερματισμός

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Προσομοίωση ενός συστήματος αναμονής

Κατανεµηµένασυστήµατα αρχείων

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

Βάσεις Περιβαλλοντικών Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Βάσεις Δεδομένων ΙΙ Ενότητα 5

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

Εισαγωγή στη Δικτύωση Υπολογιστών

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εισαγωγή στις Βάσεις Δεδομζνων II

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Τεχνολογία Πολυμέσων. Ενότητα # 22: Δίκτυα ATM Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Ηλεκτρονικοί Υπολογιστές

Ειδικά Θέματα Δικτύων ΙΙ

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 7: Διαγράμματα Καταστάσεων

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Ενδεικτικές λύσεις ασκήσεων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Διαχείριση Πολιτισμικών Δεδομένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Εισαγωγή στα Πληροφοριακά Συστήματα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Οδηγίες Οργάνωσης Μαθήματος στην Ιδρυματική πλατφόρμα του open e class. Σύνταξη: MY-AOC

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 6 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Δυναμικός Κατακερματισμός

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Εισαγωγή στην Πληροφορική

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 7: Δρομολόγηση κατάστασης ζεύξης (Μέρος 1) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Αυτοματοποιημένη χαρτογραφία

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

Transcript:

Κινητά και Διάχυτα Συστήματα Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Κατανόηση του τρόπου υλοποίησης πολυεκπομπής μέσω DHT, με παράδειγμα το σύστημα Scribe. Εξοικείωση με τον τρόπο χρήσης των DHT για αποθήκευση ολόκληρων αρχείων, με παράδειγμα το σύστημα PAST. Εξοικείωση με τον τρόπο χρήσης των DHT για αποθήκευση ομάδων αρχείων, με παράδειγμα το σύστημα CFS. 4

Περιεχόμενα ενότητας Το σύστημα Scribe Το σύστημα PAST Το σύστημα CFS 5

Το σύστημα Scribe Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Chord και Pastry Ομοιότητες Chord και Pastry Απεικονίζουν κόμβους / κλειδιά σε δακτύλιο Διαφορές Chord και Pastry Σε ποιον κόμβο ανήκει ένα κλειδί; Στο Chord ανήκει στον (αριθμητικά) επόμενο Στο Pastry ανήκει στον (αριθμητικά) πλησιέστερο Τι διεπαφή παρέχεται; Στο Chord εντοπίζεται ο επόμενος Στο Pastry στέλνεται μήνυμα στον πλησιέστερο 7

Εισαγωγή στο Scribe (1 από 4) Πολυεκπομπή στο Scribe Αξιοποιεί δρομολόγηση με βάση το κλειδί Σχεδιάστηκε για το Pastry Διεπαφή δρομολόγησης μηνυμάτων Μπορεί να χρησιμοποιηθεί με το Chord Πρέπει όμως να τροποποιηθεί η διεπαφή 8

Εισαγωγή στο Scribe (2 από 4) Ομάδες πολυεκπομπής Προσδιορίζονται από ένα κλειδί Όλες οι λειτουργίες γίνονται με βάση το κλειδί Δημιουργία ομάδας Προσχώρηση και αποχώρηση κόμβων Αποστολή δεδομένων στην ομάδα Τα δεδομένα λαμβάνονται από όλα τα μέλη 9

Εισαγωγή στο Scribe (3 από 4) Κλειδιά ομάδων Παράγονται με κατακερματισμό MD5, SHA-1, κ.λπ. Ίδιο πεδίο με τα κλειδιά των κόμβων Αυθαίρετα ονόματα ομάδων Ο κατακερματισμός τα κάνει ομοιόμορφα Συνυπάρχουν διάφοροι τύποι ονομάτων Παράδειγμα: ιεραρχικά, επίπεδα 10

Εισαγωγή στο Scribe (4 από 4) Scribe: βιβλιοθήκη πάνω από το Pastry Τέσσερις βασικές κλήσεις create(key): δημιουργία join(key,handler): προσχώρηση Τα μηνύματα προωθούνται στη handler leave(key): αποχώρηση multicast(key,msg): αποστολή Κάθε κλήση παράγει μήνυμα με το ίδιο όνομα 11

Δημιουργία δένδρου (1 από 4) Σημείο ραντεβού (rendezvous) της ομάδας Κόμβος με αριθμητικά πλησιέστερο κλειδί Τα μηνύματα δρομολογούνται εκεί create, join, leave, multicast Λειτουργεί ως ρίζα δένδρου πολυεκπομπής Προωθεί τα μηνύματα στους παραλήπτες Μαθαίνει ότι είναι σημείο ραντεβού στο create 12

Δημιουργία δένδρου (2 από 4) Επεξεργασία μηνυμάτων Τα μηνύματα στον παραλήπτη Το μήνυμα multicast έχει πολλούς παραλήπτες Το σημείο ραντεβού και τα μέλη της ομάδας Tα join/leave και στους ενδιάμεσους Χρησιμοποιούνται για την κατασκευή του δένδρου Το create μόνο στο σημείο ραντεβού Δημιουργεί τη ρίζα του δένδρου 13

Δημιουργία δένδρου (3 από 4) Κατάσταση κόμβων δένδρου πολυεκπομπής Πίνακας προώθησης ανά ομάδα Περιέχει τα παιδιά του κόμβου στο δένδρο Αρχικά είναι κενός Προσθήκη παιδιών: μηνύματα join Τα μηνύματα join δημιουργούν το δένδρο Διαγραφή παιδιών: μηνύματα leave Τα μηνύματα leave καταστρέφουν το δένδρο 14

Δημιουργία δένδρου (4 από 4) Δημιουργία ομάδας Μήνυμα create στο σημείο ραντεβού Το επεξεργάζεται μόνο το σημείο ραντεβού Δρομολόγηση μέσω του DHT Το σημείο δημιουργεί πίνακα προώθησης Αρχικά ο πίνακας είναι κενός Θα προστεθούν παιδιά σταδιακά Έλεγχος δικαιωμάτων δημιουργίας (προαιρετικά) 15

Προσχώρηση (1 από 3) Προσχώρηση σε ομάδα Αποστολή join στο σημείο ραντεβού Δρομολόγηση μέσω του DHT Κάθε ενδιάμεσος κόμβος εξετάζει το μήνυμα Αν έχει πίνακα προώθησης για την ομάδα Προσθέτει τον αποστολέα στον πίνακα Δεν προωθεί το join παραπέρα Ο αποστολέας έχει συνδεθεί στο δένδρο 16

Προσχώρηση (2 από 3) Προσχώρηση σε ομάδα Αν δεν έχει πίνακα προώθησης για την ομάδα Δημιουργεί τον πίνακα προώθησης Προσθέτει τον αποστολέα στον πίνακα Αλλάζει τον αποστολέα του join στον εαυτό του Προωθεί το join παραπέρα Σταδιακή δημιουργία δένδρου πολυεκπομπής Από τα φύλλα προς το σημείο ραντεβού 17

Προσχώρηση (3 από 3) 000000 d471f1 d46a1c d462ba d4213f d13da3 65a1fc 98fc35 Παράδειγμα προσχώρησης Ομάδα d46a1c, προσχωρούν 65a1fc και 98fc35 Το δεύτερο join δεν φτάνει στο σημείο ραντεβού Σταματάει στον πρώτο κόμβο που είναι ήδη στο δένδρο 18

Αποχώρηση Αποχώρηση από ομάδα Αποστολή leave στο σημείο ραντεβού Κάθε ενδιάμεσος κόμβος εξετάζει το μήνυμα Αφαίρεση αποστολέα από πίνακα προώθησης Αν o πίνακα προώθησης δεν μένει κενός Δεν προωθεί το leave παραπέρα Αν o πίνακα προώθησης μένει κενός Αλλάζει τον αποστολέα του leave στον εαυτό του Προωθεί το leave παραπέρα 19

Αποστολή μηνυμάτων Αποστολή μηνυμάτων στην ομάδα Αποστολή multicast στο σημείο ραντεβού Το σημείο ραντεβού προωθεί το μήνυμα Χρήση πάντα του DHT Αναδρομική προώθηση μέχρι τα φύλλα Σε κάθε μέλος καλείται η μέθοδος handler Ουσιαστικά είναι η μέθοδος λήψης μηνυμάτων Μπορεί να περάσουμε πολλά μέλη στη διαδρομή 20

Απόδοση (1 από 2) Πόσο αποδοτική είναι η πολυεκπομπή; Το δένδρο είναι ένωση μονοπατιών Τα μονοπάτια είναι αντίστροφα των επιθυμητών Από τα μέλη της ομάδας προς το σημείο ραντεβού Μπορεί να μην είναι συμμετρικά Τα μονοπάτια προς τα μέλη δεν είναι βέλτιστα Ως προς το υποκείμενο δίκτυο Το Pastry προσεγγίζει τα τοπολογικά βέλτιστα 21

Απόδοση (2 από 2) Πόσο αποδοτική είναι η πολυεκπομπή; Το σημείο ραντεβού δεν είναι βέλτιστο Τα μηνύματα κινούνται πρώτα προς σημείο ραντεβού Μπορεί να απομακρύνονται από τα μέλη της ομάδας Το μονοπάτι προς το ραντεβού δεν είναι βέλτιστο Ο αποστολέας μπορεί να αποθηκεύσει τη διεύθυνση Στη συνέχεια αποστολή μηνυμάτων μέσω IP 22

Αποτυχίες (1 από 2) Αποτυχία / αποχώρηση εσωτερικών κόμβων Κάθε κόμβος στέλνει περιοδικά μηνύματα Σε όλα τα παιδιά του Αν ένα παιδί δεν λάβει μήνυμα για αρκετή ώρα Υποθέτει ότι ο πατέρας του έχει αποτύχει Στέλνει νέο join προς το σημείο ραντεβού Το παιδί επανασυνδέεται με το δένδρο 23

Αποτυχίες (2 από 2) Αποτυχία ή αποχώρηση σημείου ραντεβού Το σημείο ραντεβού αναπαράγει την κατάστασή του Περιοδική αποστολή κατάστασης στο σύνολο φύλλων Αν αποτύχει, κάποιο φύλλο θα γίνει σημείο ραντεβού Τα παιδιά παρατηρούν την αποτυχία Δεν λαμβάνουν μήνυμα από τον πατέρα Στέλνουν νέο μήνυμα join προς το σημείο ραντεβού Τα μηνύματα join καταλήγουν στο νέο σημείο ραντεβού Παρόμοια αντιμετώπιση από τους αποστολείς 24

Το σύστημα PAST Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Εισαγωγή στο PAST (1 από 5) PAST: αποθήκευση αρχείων μέσω Pastry Αντιστοίχιση κάθε αρχείου σε k κόμβους Αριθμητικά πλησιέστεροι στο κλειδί του αρχείου Βαθμός αναπαραγωγής k Αύξηση αξιοπιστίας και αποδοτικότητας Δεν υποστηρίζει πλήρες σύστημα αρχείων Απλά αποθηκεύει τα αρχεία αυτόνομα 26

Εισαγωγή στο PAST (2 από 5) Διεπαφή προσανατολισμένη σε αρχεία Βασίζεται σε σύστημα δημόσιας κρυπτογραφίας Θεωρούμε ότι γνωρίζουμε τα δημόσια κλειδιά key=insert(name,k,file) Αποθήκευση file με όνομα name σε k κόμβους Το key παράγεται με κατακερματισμό των στοιχείων Όνομα, δημόσιο κλειδί και τυχαία επιλεγμένη τιμή 27

Εισαγωγή στο PAST (3 από 5) Διεπαφή προσανατολισμένη σε αρχεία file=lookup(key) Ανάκτηση ενός αντιγράφου του αρχείου με κλειδί key Συνήθως από τον τοπολογικά πλησιέστερο κόμβο reclaim(key) Απελευθέρωση του χώρου του αρχείου με κλειδί key Δεν εγγυάται ότι θα διαγραφούν όλα τα αντίγραφα 28

Εισαγωγή στο PAST (4 από 5) Ιδιαιτερότητες της διεπαφής του PAST Δεν επιτρέπει την τροποποίηση των αρχείων Αν εισάγουμε ξανά το αρχείο θα αλλάξει κλειδί Θα χρησιμοποιηθεί διαφορετική τυχαία τιμή Τα αρχεία είναι αμετάβλητα (immutable) Μόνο ο ιδιοκτήτης γνωρίζει το κλειδί του αρχείου Αυτός έχει την ευθύνη και για τη διανομή του Δεν γίνεται έλεγχος πρόσβασης στα lookup Έλεγχος μόνο στη διαγραφή των αρχείων 29

Εισαγωγή στο PAST (5 από 5) Μοντέλο ανεβάσματος-κατεβάσματος Παρόμοιο με το AFS αλλά χωρίς σύστημα αρχείων Η εφαρμογή βλέπει τη διεπαφή του PAST Η εφαρμογή δεν τρέχει σε όλους τους κόμβους Πελάτης Εξυπηρετητής Εφαρμογή PAST PAST Pastry Pastry 30

Εισαγωγή αρχείων (1 από 3) Εισαγωγή αρχείων στο PAST Υπολογισμός κλειδιού με κατακερματισμό Όνομα αρχείου, δημόσιο κλειδί, τυχαία τιμή Δημιουργία πιστοποιητικού αρχείου Κλειδί, hash περιεχομένου, τιμή k, τυχαία τιμή, ώρα Δεν μεταβάλλεται αφού το αρχείο δεν αλλάζει Υπογράφεται ψηφιακά από τον ιδιοκτήτη Αποθηκεύεται μαζί με το αρχείο 31

Εισαγωγή αρχείων (2 από 3) Εισαγωγή αρχείων στο PAST Αρχείο και πιστοποιητικό δρομολογούνται Όταν φτάσουν σε έναν από τους k κόμβους Ελέγχεται η εγκυρότητα αρχείου και πιστοποιητικού Το αρχείο αποθηκεύεται Το αρχείο στέλνεται στους k-1 Κάθε παραλήπτης επιστρέφει απόδειξη αποθήκευσης Ο πελάτης θα λάβει k έγκυρες αποδείξεις 32

Εισαγωγή αρχείων (3 από 3) f f -l/2 -l/2 k-1 k-1 l/2>=k l/2>=k (α) Εντοπισμός των k πλησιέστερων κόμβων Τα μηνύματα δρομολογούνται προς το κλειδί f Κάθε κόμβος διατηρεί ένα σύνολο l φύλλων Οι l/2 μικρότεροι και l/2 μεγαλύτεροι κόμβοι Απαιτούμε l/2>=k Έστω ότι το μήνυμα φτάνει στον ακραίο κόμβο Οι k-1 άλλοι κόμβοι βρίσκονται στο σύνολο φύλλων Άρα ο πρώτος γνωρίζει πάντα τους άλλους k-1 (β) 33

Διαγραφή αρχείων Διαγραφή αρχείων στο PAST Δημιουργία πιστοποιητικού ανάκτησης Υπογράφεται ψηφιακά από τον ιδιοκτήτη Η αίτηση και το πιστοποιητικό δρομολογούνται Όταν φτάσουν σε έναν από τους k κόμβους Ελέγχεται η εγκυρότητα του πιστοποιητικού Το αρχείο διαγράφεται Η αίτηση δρομολογείται στους k-1 Κάθε παραλήπτης επιστρέφει μια απόδειξη διαγραφής Ο πελάτης θα λάβει k έγκυρες αποδείξεις (ίσως!) 34

Ανάκτηση αρχείων Ανάκτηση αρχείων στο PAST Το μήνυμα αποστέλλεται μέσω του Pastry Ο πρώτος από τους k κόμβους απαντά Επιστρέφεται και το πιστοποιητικό αρχείου Ο πελάτης επιβεβαιώνει την εγκυρότητα του αρχείου Χρήση πιστοποιητικών Το PAST δημιουργεί πιστοποιητικά Κατά την εισαγωγή και διαγραφή αρχείων Στις άλλες λειτουργίες απλά τα επιβεβαιώνει 35

Αποθήκευση σε πολλά σημεία Κάθε αρχείο αποθηκεύεται σε k κόμβους Οι κόμβοι είναι διάσπαρτοι στο σύστημα Μικρή πιθανότητα ταυτόχρονης αποτυχίας Κάποιος μπορεί να είναι κοντά στον πελάτη Προσωρινή αποθήκευση αρχείων Κάθε κόμβος αξιοποιεί τον ελεύθερο χώρο του Αποθηκεύει προσωρινά διερχόμενα αρχεία Διαχείριση χώρου με κάποια πολιτική Προτεραιότητα έχουν τα αντίγραφα αρχείων 36

Κατανομή φόρτου Βασίζεται στην τυχαία κατανομή αρχείων Αυτό δεν οδηγεί σε ομοιόμορφη κατανομή Ανομοιόμορφες δυνατότητες κόμβων Ορισμένοι κόμβοι έχουν πολύ διαθέσιμο χώρο Οι κόμβοι διασπώνται σε εικονικούς κόμβους Μοιράζονται το φυσικό χώρο αποθήκευσης Ανομοιόμορφη κατανομή αρχείων Αρχεία με πάρα πολύ μεγάλο μέγεθος Κάποιοι κόμβοι μπορεί να φορτωθούν περισσότερο 37

Εκτροπή αντιγράφων (1 από 4) Εκτροπή αντιγράφων Έστω ότι ο Α λαμβάνει μία αίτηση εισαγωγής Αν δεν μπορεί να την ικανοποιήσει; Επιλέγει ένα από τα φύλλα του, τον B Δεν πρέπει να είναι στους k πλησιέστερους Δεν πρέπει να έχει δεχτεί ήδη άλλο αντίγραφο Στέλνει το αρχείο στον B Αποθηκεύει έναν δείκτη προς το αντίγραφο Εκδίδει την απόδειξη αποθήκευσης 38

Εκτροπή αντιγράφων (2 από 4) Εκτροπή αντιγράφων Περιοδικά οι δείκτες στέλνονται και αλλού Για κάθε δείκτη εντοπίζεται ο k+1 πλησιέστερος Έστω ότι είναι ο C Ο δείκτης εκτροπής στέλνεται και στον C Αν αποτύχει ο A, ο C παίρνει αυτόματα τη θέση του Αν αποτύχει ο C, ο A εντοπίζει κάποιον άλλο κόμβο 39

Εκτροπή αντιγράφων (3 από 4) Κριτήρια εκτροπής αντιγράφων Κάθε αίτηση εισαγωγής εξετάζεται χωριστά Εκτρέπονται αρχεία που θέλουν πολύ χώρο Πάνω από κάποιο ποσοστό του διαθέσιμου χώρου Δεν γίνεται από υποφορτωμένους κόμβους Εκτρέπονται κυρίως μεγάλα αρχεία 40

Εκτροπή αντιγράφων (4 από 4) Αν δεν δεχτεί κανένα φύλλο το αρχείο; Μπορεί όλα τα φύλλα να είναι φορτωμένα Χρήση παρόμοιας πολιτικής με αυτή της εκτροπής Αναγκαστικά γίνεται εκτροπή αρχείου Επιστροφή σφάλματος στον πελάτη Ο πελάτης δημιουργεί νέο κλειδί για το αρχείο Απλά αλλάζει την τυχαία τιμή Το αρχείο αποθηκεύεται με το νέο κλειδί Το παλιό κλειδί διαγράφεται 41

Διαχείριση αλλαγών (1 από 3) Αποτυχία, αποχώρηση, προσχώρηση κόμβων Αλλάζει το σύνολο φύλλων ορισμένων κόμβων Αν αλλάξουν οι k πλησιέστεροι ενός αρχείου; Δημιουργία νέων αντιγράφων του αρχείου Πρέπει να έχουμε k στους σωστούς κόμβους Περιλαμβάνονται οι κόμβοι με εκτροπή αντιγράφων Και αυτοί ανήκουν στο σύνολο φύλλων ενός εκ των k 42

Διαχείριση αλλαγών (2 από 3) Αποτυχία ή αποχώρηση Ένα κόμβος μπορεί να χρειάζεται αντίγραφα Οι k-1 θα βρίσκονται στο σύνολο φύλλων του Αρκεί να ρωτήσει τα φύλλα του ποια αρχεία έχουν Μετά αποφασίζει ποια αρχεία του αντιστοιχούν Τέλος ζητάει τα αρχεία από αυτούς τους κόμβους 43

Διαχείριση αλλαγών (3 από 3) Προσχώρηση κόμβων Το σύστημα περιέχει ήδη k αντίγραφα Αρκεί ο νέος κόμβος να προσθέσει δείκτες Αρχικά εντοπίζει τον κόμβο που έφυγε από τους k Στη συνέχεια αποθηκεύει δείκτες προς αυτόν Σταδιακά τα αντίγραφα έρχονται στον κόμβο Τα αντίγραφα μπορεί να απομακρυνθούν από τους k Αν έχουμε αποτυχίες θα μείνουν λιγότερα από k 44

Το σύστημα CFS Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Εισαγωγή στο CFS (1 από 3) CFS: Αποθήκευση αρχείων μέσω Chord Αντιστοίχιση ομάδας δεδομένων σε k κόμβους Βαθμός αναπαραγωγής k Υποστηρίζει πλήρες σύστημα αρχείων Πελάτης Εξυπηρετητής Εφαρμογή Σύστημα αρχείων DHash DHash Chord Chord 46

Εισαγωγή στο CFS (2 από 3) Δομή του CFS Το Chord απεικονίζει τα κλειδιά ομάδων σε κόμβους Το DHash διαχειρίζεται τις ομάδες των δεδομένων Το σύστημα αρχείων συνθέτει αρχεία και ευρετήρια Ομοιότητες με το PAST Εικονικοί κόμβοι για εξισορρόπηση φόρτου Διαφορές με το PAST Λειτουργία σε επίπεδο ομάδων και όχι αρχείων Πιο ομοιόμορφη κατανομή δεδομένων Απλούστερη διαχείριση αντιγράφων 47

Εισαγωγή στο CFS (3 από 3) Διεπαφή αρχείων του CFS Παρόμοια με αυτή του UNIX Υλοποιεί μοντέλο απομακρυσμένης πρόσβασης Μόνο ο ιδιοκτήτης μπορεί να αλλάξει τα αρχεία Για τους πελάτες τα αρχεία είναι ανάγνωσης μόνο Οι ομάδες αποθηκεύονται για περιορισμένο χρόνο Ο ιδιοκτήτης πρέπει να τις ανανεώνει Αλλιώς οι ομάδες διαγράφονται Δεν υπάρχει ρητή κλήση διαγραφής αρχείων Υποθέτουμε σύστημα δημόσιας κρυπτογραφίας 48

Σύστημα αρχείων (1 από 3) Ξεκινάμε με τις ομάδες δεδομένων B1 και B2 Αποθηκεύονται με κλειδιά h(b1) και h(b2) Το αρχείο F περιέχει τα κλειδιά των ομάδων Αντίστοιχο με το i-node στο UNIX Αποθηκεύεται με κλειδί h(f) Το ευρετήριο D περιέχει τα κλειδιά των αρχείων Αποθηκεύεται με κλειδί h(d) Το ευρετήριο ρίζας υπογράφεται από τον ιδιοκτήτη Αποθηκεύεται με κλειδί h(k) (K είναι το δημόσιο κλειδί) Ένα σύστημα αρχείων ανά δημόσιο κλειδί 49

Σύστημα αρχείων (2 από 3) h(k) Ρίζα Κατάλογος 1 Κατάλογος 2... Υπογραφή h(d) Ευρετήριο Αρχείο 1 Αρχείο 2... Έλεγχος δεδομένων h(f) Αρχείο Ομάδα 1 Ομάδα 2... h(b1) h(b2) Κάθε ομάδα ταιριάζει με το κλειδί της H ρίζα ελέγχεται με βάση την υπογραφή Πρέπει να ταιριάζει με το κλειδί του ευρετηρίου Οι ομάδας ελέγχονται με βάση το περιεχόμενο Πρέπει να ταιριάζουν με τα κλειδιά τους B1 B2 50

Σύστημα αρχείων (3 από 3) Τροποποίηση αρχείων Κάθε αλλαγή σε ομάδα αλλάζει το κλειδί της Προέρχεται από κατακερματισμό της ομάδας Τελικά αυτό απαιτεί αλλαγή της ρίζας Το νέο κλειδί αλλάζει την ομάδα που καταχωρείται Μόνο ο ιδιοκτήτης αλλάζει τα δεδομένα Καταχωρεί νέα ρίζα και την υπογράφει ψηφιακά Πρέπει να χρησιμοποιήσει το ίδιο δημόσιο κλειδί 51

Διεπαφή του CFS (1 από 2) Η διαχείριση ομάδων γίνεται από το DHash To Chord χρησιμοποιείται για τις αναζητήσεις Το DHash αξιοποιείται από το σύστημα αρχείων Διεπαφή του DHash put_h(block) Υπολογίζει το κλειδί κατακερματίζοντας το block Στέλνει την ομάδα για αποθήκευση σε k κόμβους 52

Διεπαφή του CFS (2 από 2) Διεπαφή του DHash put_s(block,pubkey) Επιβεβαιώνει ότι η block είναι έγκυρη Πρέπει να είναι ψηφιακά υπογεγραμμένη με pubkey Χρησιμοποιείται μόνο για το ριζικό ευρετήριο Υπολογίζει κλειδί με κατακερματισμό του pubkey Στέλνει την ομάδα για αποθήκευση σε k κόμβους block=get(key) Ανακτά την ομάδα που προσδιορίζεται από το key 53

Αποθήκευση ομάδων (1 από 2) Αποθήκευση ομάδων σε κόμβους Το DHash εντοπίζει το διάδοχο της ομάδας Ο κόμβος αποθηκεύει την ομάδα σε k διαδόχους Οι διάδοχοι βρίσκονται στη λίστα διαδόχων Η λίστα διαδόχων είναι μεγαλύτερη του k Αν αποτύχει αναλαμβάνει ο νέος διάδοχος Έχει ήδη αποθηκευμένη την ομάδα 54

Αποθήκευση ομάδων (2 από 2) Τυχαία κατανομή των αντιγράφων Οι k κόμβοι είναι διάσπαρτοι στο δίκτυο Πολύ απίθανο να αποτύχουν ταυτόχρονα Στις ανακτήσεις ο διάδοχος επιστρέφει τους k Ο πελάτης επιλέγει τον τοπολογικά πλησιέστερο Αρκετά πιθανό κάποιος από τους k να είναι κοντά 55

Προσωρινή αποθήκευση Προσωρινή αποθήκευση ομάδων Όταν γίνεται αναζήτηση οι ενδιάμεσοι κόμβοι ερωτώνται Αν περιέχουν την ομάδα, την επιστρέφουν άμεσα Αλλιώς θα τη λάβουν από τον πελάτη όταν την ανακτήσει Δεν απαιτείται έλεγχος εγκυρότητας των ομάδων Το κλειδί τους πιστοποιεί αν είναι έγκυρες Αν αλλάξουν, αλλάζει και το κλειδί τους Εξαιρείται το ευρετήριο ρίζας Το κλειδί του δεν αλλάζει όταν τροποποιείται Πρέπει να εξετάζεται πόσο πρόσφατο είναι 56

Ανανέωση αρχείων Περιοδική ανανέωση αρχείων Στο CFS οι ομάδες δεν διαγράφονται ρητά Απλά διαγράφονται όταν παλιώσουν πολύ Το σύστημα αρχείων διασχίζεται περιοδικά Ξεκινάμε από τη ρίζα και φτάνουμε στα φύλλα Κάθε ομάδα που εντοπίζεται αποθηκεύεται ξανά Οι ομάδες που έχουν διαγραφεί δεν ανανεώνονται 57

Τέλος Ενότητας #6 Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής