Declarative Overlays Πέτρος Μανιάτης, Intel Research Berkeley σε συνεργασία με Tyson Condie (UCB), David Gay (IRB), Minos Garofalakis (IRB), Joseph M.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές έννοιες αλγορίθμων
Advertisements

Ιεραρχίες Κόμβων Δομημένες σε Δακτύλιο για Ρ2Ρ Συστήματα Βασισμένα σε RDF Σχήματα Παρουσίαση Μεταπτυχιακής Διατριβής: Νικόλαος Κρεμμυδάς Επιβλέπουσα καθηγήτρια:
Δομές Δεδομένων και Αλγόριθμοι
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Chord: A scalable Peer-to-Peer Lookup Service for Internet Applications Παρουσίαση: Αθανασόπουλος, Αλεξάκης, Δεβελέγκα, Πεχλιβάνη, Φωτιάδου, Φωτόπουλος.
A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Χαρακτηριστικά συνθετικής κίνησης 1 Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Τεχνολογία Δικτύων Επικοινωνιών
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
ΜΑΘ-3122/106 Προγραμματισμός
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Οι τεχνολογίες της Πληροφορίας & Επικοινωνίας στη Διδακτική των Φυσικών Επιστημών Εισαγωγική επιμόρφωση εκπαιδευτικών ΠΕ04 Π.Ε.Κ – 2006 Ασημίνα Κοντογεωργίου.
Βάσεις Δεδομένων (ΚΒΔ)
1/23 DHTStrings: Συστήματα Δημοσιεύσεων/Συνδρομών σε DHT Δίκτυα με Υποστήριξη για Συμβολοσειρές Διανομή Περιεχομένου στο Διαδίκτυο Τμήμα ΜΗΥΠ Παν/μιο Πατρών.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Υπηρεσίες δικτύων επικοινωνίας
ΕΚΠΑΙΔΕΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΤΗΣ ΕΥΡΥΤΕΡΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΔΙΑΦΟΡΕΤΙΚΟ ΛΟΓΙΣΜΙΚΟ ΓΙΑ ΚΑΘΕ ΠΤΥΧΗ ΤΟΥ Κάππας Κων/νος Επιμορφωτής ΤΠΕ -
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Δίκτυα Ι Βπ - 2ο ΕΠΑΛ ΝΕΑΣ ΣΜΥΡΝΗΣ 2011.
ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Παράδειγμα Βελτιστοποίησης Μέσου Μήκους Πακέτου 23/05/2011.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
1 Έλεγχος ροής και συμφόρησης (flow and congestion control) flow control Ο όρος έλεγχος ροής (flow control) χρησιμοποιείται συχνά για να περιγράψει τους.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Σχεδίαση Αλγορίθμων. Διεργασίες (1/2) Μία διεργασία αλληλεπιδρά με το περιβάλλον της δεχόμενη είσοδο και παράγοντας έξοδο.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
1 routing Δρομολόγηση (routing) σε δίκτυα Αυτοδύναμα Πακέτα (Datagrams): απόφαση δρομολόγησης για κάθε πακέτο. Εικονικά Κυκλώματα (Virtual Circuits): μία.
Μεταγωγή (Switching) Πως σχηματίζουμε διαδίκτυα. Περίληψη Μεταγωγή Κυκλωμάτων (Circuit switching) Μεταγωγή Πακέτων (Packet switching) Μεταγωγή Εικονικών.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
Εισαγωγικά Θέματα WWW Δίκτυα Ομοτίμων p2p.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
1 Βέλτιστη δρομολόγηση (optimal routing) Αντιμετώπιση της δρομολόγησης σαν «συνολικό» πρόβλημα βελτιστoποίησης. Γιατί: Η αλλαγή της δρομολόγησης μιας συνόδου.
Μεταγωγή (Switching) Πως σχηματίζουμε διαδίκτυα. Περίληψη Μεταγωγή Κυκλωμάτων (Circuit switching) Μεταγωγή Πακέτων (Packet switching) Μεταγωγή Εικονικών.
CHORD A Scalable Peer-to-peer Lookup Service for Internet Applications Μαρίνα Δρόσου Νικόλαος Μπουντουρόπουλος Οδυσσέας Πετρόχειλος Παναγιώτης Δομουχτσίδης.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
1 ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή Β. Μάγκλαρης Β. Μάγκλαρης Σ. Παπαβασιλείου Σ. Παπαβασιλείου
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Δρομολόγηση. Δρομολόγηση ονομάζεται το έργο εύρεσης του πως θα φθάσει ένα πακέτο στον προορισμό του Ο αλγόριθμος δρομολόγησης αποτελεί τμήμα του επιπέδου.
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
University of Crete HY566-Semantic Web CS566 – Semantic Web Computer Science Department - UoC Heraklion 1 April, 2003 Παπαγγελής Μάνος, Κοφφινά Ιωάννα,
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
P2 Declarative Networking Θεόδωρος Αθανασιάδης Α.Μ. 133.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 2: Συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου. Εργαστήριο Διαχείρισης και Βέλτιστου.
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
1 ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παραδείγματα Εφαρμογής Άσκηση Προσομοίωσης Βασίλης Μάγκλαρης 6/4/2016.
Βιομηχανική Πληροφορική Βολογιαννίδης Σταύρος Αρχιτεκτονική συστημάτων βιομηχανικού ελέγχου.
Εισαγωγή Στις Τηλεπικοινωνίες Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Αθηνών Διδάσκων: Χρήστος Μιχαλακέλης Ενότητα.
1 ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Κλειστά Δίκτυα Ουρών Markov Θεώρημα Gordon – Newell Αλγόριθμος Buzen Βασίλης Μάγκλαρης 11/5/2016.
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΞΕΛΙΚΤΙΚΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
Κατανεμημένα Συστήματα
ΤΟΠΟΛΟΓΙΕΣ KAI ΜΟΝΑΔΕΣ ΔΙΑΣΥΝΔΕΣΗΣ ΤΟΠΙΚΩΝ ΔΙΚΤΥΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΞΕΛΙΚΤΙΚΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
Κεφάλαιο 7: Διαδικτύωση-Internet
Δίκτυα Ι Βπ - 2ο ΕΠΑΛ ΝΕΑΣ ΣΜΥΡΝΗΣ 2011.
Μεταγράφημα παρουσίασης:

Declarative Overlays Πέτρος Μανιάτης, Intel Research Berkeley σε συνεργασία με Tyson Condie (UCB), David Gay (IRB), Minos Garofalakis (IRB), Joseph M. Hellerstein (UCB), Boon Thau Loo (UCB), Raghu Ramakrishnan (UW), Sean Rhea (MIT/IRB), Timothy Roscoe (IRB), Atul Singh (Rice), Ion Stoica (UCB)

Δηλωτικά Επιστρώματα ? Πέτρος Μανιάτης, Intel Research Berkeley σε συνεργασία με Tyson Condie (UCB), David Gay (IRB), Minos Garofalakis (IRB), Joseph M. Hellerstein (UCB), Boon Thau Loo (UCB), Raghu Ramakrishnan (UW), Sean Rhea (MIT/IRB), Timothy Roscoe (IRB), Atul Singh (Rice), Ion Stoica (UCB)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20053 Επιστρώματα Παντού… “ Επίστρωμα ”: το υποσύστημα δρομολόγησης και προώθησης μηνυμάτων σε κάθε κατανεμημένο σύστημα Internet Overlay

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20054 Internet Overlay Επιστρώματα Παντού… •Μετάδοση πακέτων –Internet routing –multicast –RON •Μετάδοση περιεχομένων (content delivery) –CDNs (π.χ., Akamai) –file sharing (π.χ., Kazaa) –DHTs (π.χ., Chord, Pastry, …) •Οργάνωση –κατανεμημένη επεξεργασία επερωτήσεων (π.χ., PIER) –το MapReduce της Google •Enterprise –Microsoft Exchange Η Ανανέωση στα Κατανεμημένα Συστήματα Χρειάζεται τα «Επιστρώματα»

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20055 •Κάθε εφαρμογή επίστρωσης έχει τις δικές της ανάγκες –Low latency, high bandwidth, high reliability, tolerance to churn, anonymity, long-term preservation, … •Οπότε για κάθε εφαρμογή πρέπει –Να βρεις τις σωστές ιδιότητες  Χωρίς συνολική εικόνα –Τους σωστούς αλγορίθμους  Λάθος αλγόριθμος –Να τους υλοποιήσεις  Εσφαλμένη υλοποίηση –Να ρυθμίσεις παραμέτρους  Ψυχωτικά timeouts –Να ελέγξεις το αποτέλεσμα  Μερικές αποτυχίες –Debugging!  Ασύγχρονη ενδοσκόπηση –Και ξανά, πολλές φορές  Εξοντωτική βαρεμάρα Δύσκολη η Επίστρωση...

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20056 •Κάθε εφαρμογή επίστρωσης έχει τις δικές της ανάγκες –Low latency, high bandwidth, high reliability, tolerance to churn, anonymity, long-term preservation, … •Οπότε για κάθε εφαρμογή πρέπει –Να βρεις τις σωστές ιδιότητες  Χωρίς συνολική εικόνα –Τους σωστούς αλγορίθμους  Λάθος αλγόριθμος –Να τους υλοποιήσεις  Εσφαλμένη υλοποίηση –Να ρυθμίσεις παραμέτρους  Ψυχωτικά timeouts –Να ελέγξεις το αποτέλεσμα  Μερικές αποτυχίες –Debugging!  Ασύγχρονη ενδοσκόπηση –Και ξανά, πολλές φορές  Εξοντωτική βαρεμάρα Δύσκολη η Επίστρωση... Δύσκολη δουλειά Πρέπει να την κάνουμε με το χέρι κάθε φορά;

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20057 Ο Βασικός μας Στόχος •Να διευκολύνουμε την ανάπτυξη επιστρωμάτων –Ώστε να ασχολούμαστε με αλγορίθμους και πρωτοκόλλα, όχι με τις λεπτομέρειες της υλοποίησης... •Εργαλεία γρήγορης ανάπτυξης επιστρωμάτων –Προδιαγραφή του επιστρώματος σε υψηλό επίπεδο –Αυτόματη μετάφραση της προδιαγραφής σε πρωτόκολλο –Αυτόματη εκτέλεση του πρωτοκόλλου •Από πλευράς απόδοσης, πάμε για «Λίαν Καλώς», όχι για «Άριστα» –Επιταχύνουμε την επαναλαμβανόμενη σχεδιαστική διαδικασία –Προετοιμάζουμε το έδαφος για χειρωνακτική ή και αυτόματη βελτιστοποίηση σε επόμενο στάδιο Ό,τι πέτυχε η σχεσιακή επανάσταση και η SQL για τις βάσεις, αλλά για τα διαδίκτυα

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20058 Η Δική μας Προσέγγιση: P2 •Χειριζόμαστε τους κατανεμημένους αλγορίθμους σαν μια όψη (database view) του μεταβαλλόμενου συστήματος –Ένας μετασχηματισμός της θεμελιώδους κατάστασης •Διατηρούμε την όψη σαν μια συνεχή κατανεμημένη επερώτηση –Καθώς κάποιοι κόμβοι αποτυγχάνουν, ζεύξεις διακόπτονται, ο πληθυσμός αλλάζει, κλπ.

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/20059 Το Μοντέλο Δεδομένων του P2 •Κατανεμημένη κατάσταση (soft state) αποθηκεύεται εφήμερα σε σχεσιακούς πίνακες –route(Src, Dst, FirstHop) •Μη αποθηκεύσιμη πληροφορία – π.χ., μηνύματα – μεταδίδεται σε ροές πλειάδων (tuple streams) –message(Src, Dst) •Και στις δύο περιπτώσεις, τα δεδομένα έχουν συγκεκριμένο σχήμα

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Παράδειγμα: Δρομολόγηση Δακτυλίου •Κόμβοι σε δακτύλιο •Οργανωμένοι με βάση την ταυτότητά τους •Καθένας γνωρίζει το διάδοχό του •Δεδομένα αποθηκεύονται στο δακτύλιο με βάση το κλειδί τους •Υπεύθυνος κόμβος είναι ο διάδοχος του δεδομένου

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Παράδειγμα: Δρομολόγηση Δακτυλίου •Κόμβοι σε δακτύλιο •Οργανωμένοι με βάση την ταυτότητά τους •Καθένας γνωρίζει το διάδοχό του •Δεδομένα αποθηκεύονται στο δακτύλιο με βάση το κλειδί τους •Υπεύθυνος κόμβος είναι ο διάδοχος του δεδομένου

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Παράδειγμα: Δρομολόγηση Δακτυλίου •Πώς βρίσκω ένα συγκεκριμένο δεδομένο με βάση το κλειδί του; •Αλγόριθμος: n.lookup(k) if k in (n, n.successor) return n.successor else return n.successor. lookup(k)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Παράδειγμα: Δρομολόγηση Δακτυλίου n.lookup(k) if k in (n, n.successor) return n.successor else return n.successor. lookup(k) •Κατάσταση κόμβων node(Addr, N) successor(Addr, Succ, SAddr) •Μηνύματα lookup(Addr, Req, K) response(Req, K, SAddr)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Ψευδοκώδικας Ως Επερώτηση n.lookup(k) if k in (n, n.successor) return n.successor else return n.successor. lookup(k) •Κατάσταση κόμβων node(Addr, N) successor(Addr, Succ, SAddr) •Μηνύματα lookup(Addr, Req, K) response(Req, K, SAddr) send response (Req, K, SAddr) to Req when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr), andK in (N, Succ]

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Ψευδοκώδικας Ως Επερώτηση •n.lookup(k) if k in (n, n.successor) return n.successor else return n.successor. lookup(k) •Κατάσταση κόμβων node(Addr, N) successor(Addr, Succ, SAddr) •Μηνύματα lookup(Addr, Req, K) response(Req, K, SAddr) send response (Req, K, SAddr) to Req when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr), andK in (N, Succ] send lookup (SAddr, Req, K) to SAddr when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr), andK not in (N, Succ]

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Από Επερώτηση Σε Εκτέλεση •Τυπικό παραδοσιακό πρόβλημα βάσεων •Προδιαγραφή μεταφράζεται αυτόματα σε γράφο ροής δεδομένων (dataflow graph) –Κόμβοι του γράφου είναι υπολογιστικά στοιχεία γραμμένα σε C++ (μοιάζουν με το Click) –Τα στοιχεία υλοποιούν •Σχεσιακούς τελεστές (joins, selections, projections) •Τελεστές ροής (multiplexers, demultiplexers, queues) •Δικτυακούς τελεστές (congestion control, retry, rate limitation) –Και διασυνδέονται μέσω ασύγχρονων τυποποιημένων ροών (push και pull) •Ο γράφος εκτελείται από ένα γενικό διεκπεραιωτή (π.χ., FIFO εκτέλεση ή άλλες)      demux

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μετάφραση σε Γράφο Ροής Send response (Req, K, SAddr) to Req, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N) and succ (NAddr, Succ, SAddr) and K in (N, Succ]. Send lookup (SAddr, Req, K) to SAddr, when lookup (NAddr, Req, K) at NAddr and node (NAddr, N), and succ (NAddr, Succ, SAddr) and K not in (N, Succ].

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Αρχιτεκτονική του Συστήματος

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ P2 Περιγραφή του επιστρώματος Εξερχόμενα πακέτα Εισερχόμενα πακέτα Προδιαγραφή του κατανεμημένου συστήματος σε κάποια γλώσσα επερωτήσεων Μετάφραση προδιαγραφής σε βελτιστοποιημένη ροή δεδομένων Εκτέλεση γράφου ροής για τη διατήρηση του επιστρώματος

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Γλώσσες Προδιαγραφής •Γλώσσα ροής δεδομένων –Αντίστοιχη με τη γλώσσα του Click –Ορίζει υπολογιστικά στοιχεία και τα διασυνδέει •Δηλωτική γλώσσα (OverLog) –Παραπλήσια της Datalog, κατανεμημένη, με αλλαγές κατάστασης – :-,,, …,. –Τοπωνύμια (location specifiers) τοποθετούν κάθε πλειάδα στον κόμβο της SAddr) :- K), SAddr), K in (N, Succ]. •Μίγμα των δύο –Αρχικά με OverLog, μετά λεπτομερείς αλλαγές στο γράφο απ’ ευθείας

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Λειτουργικό Μοντέλο της OverLog •Όπως με κάθε λογική γλώσσα, η μαγεία έγκειται στην ενοποίηση μεταβλητών D) :- D, H), D). •Υψηλότερο επίπεδο έκφρασης αλλά δυσκολότερη μετάφραση σε εκτελέσιμο κώδικα Αλλά •Μεγάλη κάλυψη από υπάρχουσα έρευνα –Στατικοί και δυναμικοί έλεγχοι, τερματισμός, βελτιστοποίηση, κλπ. κλπ. (a, y, c) (a, z, r) (a, z, t) z) z) z)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Ένα Πολυπλοκότερο Παράδειγμα •Πλήρης προδιαγραφή του Chord (MIT/UCBerkeley) –46 κανόνες OverLog –212 υπολογιστικά στοιχεία •Ίδιες ιδιότητες –Λογαριθμική διάμετρος του δικτύου –Λογαριθμική κατάσταση ανά κόμβο –Συνεπής δρομολόγηση, ακόμη και με μεταβαλλόμενο πληθυσμό •«Λίαν Καλώς» –~4x δικτυακή καθυστέρηση (latency) σε σχέση με το «χειροποίητο» Chord •Πολλά άλλα παραδείγματα –Multicast, gossip, flooding, PAXOS

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Σύγκριση με το Chord σε Χαμηλό Επιπέδο (C++)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Μέχρι στιγμής... •Προδιαγραφή επιστρωμάτων σαν συνεχείς κατανεμημένες επερωτήσεις •Μετάφραση σε γράφο ροής δεδομένων •Εκτέλεση του γράφου εκτελεί το επίστρωμα •Αποδεκτή η απόδοση του αποτελέσματος Αλλά … Όταν αποκτάς ένα σύστημα επεξεργασίας κατανεμημένων επερωτήσεων, πολά καλά έπονται…

Ζωντανή Ενδοσκόπηση Κατανεμημένων Συστημάτων με τους Peter Druschel (Rice/Max Planck), Timothy Roscoe (IRB), Atul Singh (Rice)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Ενδοσκόπηση! •Εκπροσώπηση υπολογισμών σαν γράφος ροής δεδομένων –Ροές ανάμεσα σε στοιχεία μπορούν να παρατηρηθούν –Η κατάσταση κάθε στοιχείου μπορεί να παρατηρηθεί

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Στατική Ενδοσκόπηση •Εκπροσώπηση υπολογισμών σαν γράφος ροής δεδομένων –Ροές ανάμεσα σε στοιχεία μπορούν να παρατηρηθούν –Η κατάσταση κάθε στοιχείου μπορεί να παρατηρηθεί

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Εκτελεστική Ενδοσκόπηση •Η εκτέλεση του γράφου ροής μπορεί να παρατηρηθεί –Όποτε ένας κανόνας παράγει κάποιο αποτέλεσμα, μπορώ να κρατήσω τις εισόδους (μηνύματα και προϋποθέσεις) που δικαολογούν το αποτέλεσμα –exec(RuleID, Input, TimeIn, Output, TimeOut)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Κατανεμημένο «γνώθι σ’αυτόν» •Μοντέλο –Κάθε ενδοσκοπική παρατήρηση είναι πίνακας του P2 –Μπορώ να γράψω επερωτήσεις πάνω στην κατάσταση του συστήματος και στις ενδοσκοπικές ροές •Μπορώ να γράψω επερωτήσεις ελέγχου (π.χ., για debugging) στην ίδια γλώσσα προδιαγραφής! •Η εφαρμογή δε χρειάζεται να σταματήσει, ή να ξέρει καν ότι «ενδοσκοπείται»

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Debugging •Ζωντανός έλεγχος ιδιοτήτων του επιστρώματος: ένα κατανεμημένο watch point –«Κάθε κόμβος έχει το πολύ Κ προηγούμενους στο γράφο» –«Κανένας κόμβος δεν παλινδρομεί στους πίνακες δρομολόγησης» –«Η δρομολόγηση είναι συνεπής» •Παρακολούθηση της εκτέλεσης σε επίπεδο ψευδοκώδικα: λογικός βηματισμός –Γράφος αιτιότητας (causality graph) μιας αποτυχημένης αίτησης –Εντοπισμός αποτυχημένων αιτήσεων λόγω παλινδρομικών πινάκων δρομολόγησης •Διατήρηση πολύπλοκων όψεων του τρέχοντος συστήματος –«Συνεπή στιγμιότυπα» του συστήματος (consistent snapshot) –Επερωτήσεις πάνω στο στιγμιότυπο, π.χ., για σταθερές ιδιότητες –Αποθήκευση κατανεμημένων στιγμιοτύπων που πληρούν κάποιες ολικές ιδιότητες •Ασφάλεια, αντίσταση σε αποτυχίες, κλπ. –Auditing for equivocation

Συστατικά για Πρωτοκόλλα Μεταφοράς with Tyson Condie (UCB), Joseph M. Hellerstein (UCB), Sean Rhea (MIT/IRB), Timothy Roscoe (IRB)

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Συστατικά για Πρωτόκολλα? •Ανάλυση πρωτοκόλλων μεταφοράς σε βασικά δομικά στοιχεία που μπορούν να επανασυσταθούν με διαφορετικούς τρόπους ανάλογα με την εφαρμογή ή την κατάσταση του δικτύου TCP

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Σύντομο Ιστορικό Συστατικών για Πρωτόκολλα •Το επεχείρησαν στο παρελθόν, και πέτυχαν! •Λειτουργικό σύστημα x-Kernel –Εξάγει πρωτόκολλα ως αντικείμενα, τα οποία μπορούν να διασυνδεθούν για να παράγουν πιο πολύπλοκες επικοινωνιακές υπηρεσίες •Γλώσσα προγραμματισμού Morpheus –Αντικειμενοστρεφής προγραμματιστική υποστήριξη για αντικείμενα πρωτοκόλλων –Στατικές βελτιστοποιήσεις (κατά τη μετάφραση) των παραχθέντων πρωτοκόλλων •Γλώσσα προγραμματισμού Prolac –Εκφραστική γλώσσα για τη συγγραφή ολόκληρων πρωτοκόλλων Πλην όμως, κανείς δε νοιάστηκε για τα αποτελέσματα •Οι περισσότερες εφαρμογές ήταν μια χαρά με τα συνήθη, μονολιθικά πρωτόκολλα από σημείο σε σημείο (point-to-point) •TCP, UDP, DCCP, etc.

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Τι άλλαξε τώρα? •Επιστρώματα! –Οι κόμβοι παίζουν όλους τους ρόλους •client, server, δρομολογητή –Δρομολόγηση στο επίπεδο της εφαρμογής σημαίνει ότι μπορεί να μην ξέρω τον τελικό προορισμό ενός μηνύματος –Επικοινωνία 1:Ν ή Μ:Ν είναι ο κανόνας, όχι πλέον η εξαίρεση •Μερικά παραδείγματα ακολουθούν

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Επαναμετάδοση στη δρομολόγηση

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Επαναμετάδοση στη δρομολόγηση

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Επαναμετάδοση στη δρομολόγηση

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Συναθροιστική Αποσυμφόρηση

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Συναθροιστική Αποσυμφόρηση

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Τοποθέτηση Ενδιάμεσης Μνήμης

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Τοποθέτηση Ενδιάμεσης Μνήμης

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Τοποθέτηση Ενδιάμεσης Μνήμης

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Όλα Γίνονται με το P2 •Με σχεδόν τετριμμένο τρόπο* •Ο γράφος ροής δεομένων συγκεντρώνει όλη την πολυπλοκότητα –Κόμβοι αντιστοιχούν σε αφηρημένη λειτουργικότητα για συγκεκριμένο σκοπό –Μπορώ να σταματήσω, να επανασυνδέσω, και να επανεκκινήσω ροές για να αλλάξω ζωντανά τη λειτουργία του συστήματος •Ουσιαστικά, αφαιρούμε το διαχωριστικό ανάμεσα στην εφαρμογή και στο πρωτόκολλο μεταφοράς –Τα επίπεδα παραμένουν στην προδιαγραφή –Αλλά αφαιρούνται στην αυτοματοποιημένη υλοποίηση

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Λύσεις •Κανόνες μεταγραφής του γράφου ροής –«Μπορώ να ανταλλάξω ένα select με ένα project» –«Μπορώ να αφαιρέσω ενδιάμεση μνήμη, αν υπάρχει άλλη που προηγείται» •Δηλωτική γλώσσα για το επίπεδο μεταφοράς –Και μετά, μετάφραση των υψηλών ιδιοτήτων στο γράφο ροής, π.χ. •«Μάζεψε μηνύματα προς τον ίδιο προορισμό στο ίδιο πακέτο» •«Μη μαζεύεις περιοδικά μηνύματα, π.χ., keepalives» •Αυτόματη παραγωγή γράφων ροής –Βελτιστοποιημένων με βάση το κόστος πολλαπλών εναλλακτικών (cost-based view selection) –Αλληλένδετο πρόβλημα με την ενδοσκόπηση

Παρακάτω...

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Περίληψη •Η εξέλιξη των κατανεμημένων συστημάτων περνά μέσα από τα δικτυακά επιστρώματα •Κάπως πρέπει να διευκολύνουμε την ανάπτυξη επιστρωμάτων •Με το P2, μπορώ –Να προδιαγράψω επιστρώματα σε μία λιτή, λογική γλώσσα –Να μεταφράσω την προδιαγραφή σε γράφο ροής δεδομένων –Να εκτελέσω το επίστρωμα σαν μια κατανεμημένη επερώτηση •Μία σταδιακή μετάβαση από τον βραχνά της μέγιστης απόδοσης στην εύκολη δημιουργικότητα στο χώρο των κατανεμημένων συστημάτων

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Πλούσιο Μενού Έρευνας •Η «σωστή» γλώσσα για ολικές ιδιότητες –Ποια είναι τα βασικά δομικά στοιχεία; –Μπορώ να μεταφράσω το «έστω ένα λογαριθμικό επίστρωμα»; •Στατικοί έλεγχοι –Πώς μπορώ να αποδείξω ότι ο αλγόριθμός μου αντιστοιχεί σημασιολογικά σε ένα πρόγραμμα OverLog; –Τερματισμός, σύγκλιση, κλπ; •Βελτιστοποίηση –Ποιες τεχνικές από τις κατανεμημένες βάσεις (e.g., River) δουλεύουν; –Ποια δυναμικά στατιστικά στοιχεία χρειάζομαι για βελτιστοποίηση; –Άλλες βελτιστοποιήσεις (πολλαπλές επερωτήσεις, magic sets, …) •Εναλλακτικά περιβάλλοντα –Επεξεργαστές δικτύου (π.χ., για την υλοποίηση δρομολογητών) –Επεξεργαστές με πολλούς υπολογιστικούς πυρήνες

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Σχετικές Δημοσιεύσεις •Churn as Shelter. Tyson Condie, Varun Kacholia, Sriram Sankararaman, Joseph M. Hellerstein and Petros Maniatis. Network and Distributed System Security (NDSS), To appear. •Finally, a Use for Componentized Transport Protocols. Tyson Condie, Joseph M. Hellerstein, Petros Maniatis, Sean Rhea, and Timothy Roscoe. Proceedings of ACM/IEEE HotNets IV, •Implementing Declarative Overlays, Boon Thau Loo, Tyson Condie, Joseph M. Hellerstein, Petros Maniatis, Timothy Roscoe, and Ion Stoica. Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP), October •The Architecture of PIER: an Internet-Scale Query Processor. Ryan Huebsch, Brent Chun, Joseph M. Hellerstein, Boon Thau Loo, Petros Maniatis, Timothy Roscoe, Scott Shenker, Ion Stoica and Aydan R. Yumerefendi. Proceedings of the 2nd Conference on Innovative Data Systems Research (CIDR), January •Providing Packet Obituaries. Katerina Argyraki, Petros Maniatis, David Cheriton, Scott Shenker. Proceedings of ACM/IEEE HotNets III. November •Design Considerations for Information Planes. Brent Chun, Joseph M. Hellerstein, Ryan Huebsch, Petros Maniatis and Timothy Roscoe. Proceedings of USENIX WORLDS. December 2004.

Πέτρος ΜανιάτηςΤμήμα Πληροφορικής 12/20/ Ευχαριστώ!