Κατανεμημένες Βάσεις Δεδομένων

Σχετικά έγγραφα
Βάσεις Δεδομένων ΙΙ. Διάλεξη 4 η Aρχιτεκτονικές ΣΒΔ. Αρχιτεκτονικές Συστημάτων Βάσεων Δεδομένων

Σχεδίαση Βάσεων Δεδομένων. Ενότητα 5-Κατανεμημένα συστήματα ΒΔ Μανώλης Μαραγκουδάκης

Εαρινό Εξάμηνο

Αρχιτεκτονικές Συστημάτων Βάσεων εδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Αρχιτεκτονικές Συστηµάτων Βάσεων εδοµένων

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 8: Παράλληλες & Κατανεμημένες Βάσεις Δεδομένων

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 8: Παράλληλες & Κατανεμημένες Βάσεις Δεδομένων

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

Κατανεµηµένες Βάσεις εδοµένων

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Βάσεις Δεδομένων ΙΙ. Διάλεξη 3 η Tεχνικές Aνάκαμψης. Ιδιότητες Δοσοληψιών

Επεξεργασία Ερωτήσεων

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

Επεξεργασία οσοληψιών

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction)

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

Επεξεργασία Ερωτήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Κατανεμημένες δοσοληψίες

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Κατανεμημένες δοσοληψίες

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ

Συγκεντρωτικά συστήµατα Β Συστήµατα πελάτη - διακοµιστή (client-server) Κατανεµηµένα συστήµατα Β

Το εσωτερικό ενός Σ Β

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ.

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4)

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

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

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

Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Επαναληπτικές ασκήσεις

Κατανεμημένες δοσοληψίες

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

Εισαγωγικά στοιχεία για παραλληλισμό και ΒΔ Μοντέλα και αρχιτεκτονικές παραλληλισμού Διαμερισμός δεδομένων Παράλληλη επεξεργασία ερωτημάτων

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

ΔΙΚΤΥΑ Η/Υ ΙΙ. Γέφυρες

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

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

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

Αποκατάσταση συστήματος Βάσεις Δεδομένων

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

Τεχνικές Ανάνηψης Περιεχόµενα

Επεξεργασία οσοληψιών (συνέχεια)

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Σημεία ελέγχου (Checkpoints)

Αντικείµενο: Θεµελιώδες πρόβληµα της επιστήµης µας εδοµένα

Επίπεδο Δικτύου: Διαδικτύωση

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Διαχείριση Δεδομένων

Εισαγωγή στα Συστήματα Βάσεων εδομένων

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

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

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Βάσεις Δεδομένων : Λογικός Σχεδιασμός 1. καλών σχεσιακών σχημάτων. Λογικός Σχεδιασμός Σχεσιακών Σχημάτων. Γενικές Κατευθύνσεις.

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

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

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Transcript:

Κατανεμημένες Βάσεις Δεδομένων Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ & Πληροφορικής Βάσεις Δεδομένων ΙΙ Α. Κομνηνός Παρουσίαση Βασισμένη σε διαφάνειες της Ε. Πιτουρά και Μ. Φραγκουδάκη

Κατανεμημένα Συστήματα Τα δεδομένα είναι απλωμένα σε πολλές μηχανές, που ονομάζονται «τόποι» (sites) ή «κόμβοι» (nodes), οι οποίες μηχανές είναι διασυνδεδεμένες μέσω ενός δικτύου (LAN ή WAN) Τα δεδομένα είναι κοινά για χρήστες που τα προσπελαύνουν από πολλές μηχανές

Κατανεμημένα Συστήματα Κατανεμημένη Ανεξαρτησία Δεδομένων: Οι χρήστες δεν πρέπει να γνωρίζουν που βρίσκονται τα δεδομένα (επέκταση της Φυσικής και Λογικής Ανεξαρτησίας)

Κατανεμημένες ΒΔ (συν.) Χαρακτηριστικά Κατανεμημένων ΒΔ Διαμοίραση δεδομένων: οι χρήστες ενός τόπου μπορούν να προσπελάσουν δεδομένα που βρίσκονται σε άλλο κόμβο Αυτονομία: κάθε κόμβος μπορεί να έχει έλεγχο στα «δικά του» δεδομένα. Πλεονασμός (redundancy): τα ίδια δεδομένα μπορούν να επαναληφθούν σε διαφορετικούς κόμβους (διπλοαποθήκευση) ώστε το σύστημα να λειτουργήσει ακόμη και αν κάποιος τόπος «πέσει» Μειονέκτημα: η πρόσθετη πολυπλοκότητα που απαιτείται για τον συντονισμό των κόμβων (κόστος ανάπτυξης λογισμικού, αυξημένη πιθανότητα bugs, επιπλέον επεξεργασία / συντήρηση κλπ.)

Αρχιτεκτονικές Παράλληλων ΣΒΔ Διαμοιρασμένη μνήμη (shared memory) : οι επεξεργαστές μοιράζονται κοινή μνήμη Διαμοιρασμένο σύστημα δίσκων (shared disk) : οι επεξεργαστές μοιράζονται κοινό σύστημα δίσκων «Τίποτα» διαμοιρασμένο (shared nothing) : οι επεξεργαστές ΔΕΝ μοιράζονται ούτε κοινή μνήμη ούτε κοινό δίσκο Ιεραρχική : υβριδική αρχιτεκτονική συνδυασμός των ανωτέρω

Αρχιτεκτονικές Παράλληλων ΣΒΔ (συν.)

Αρχιτεκτονικές ΚΣΔΒΔ Ερώτηση ΠΕΛΑΤΗΣ ΠΕΛΑΤΗΣ ΕΞΥΠΗΡΕΤΗΣ ΕΞΥΠΗΡΕΤΗΣ ΕΞΥΠΗΡΕΤΗΣ Πελάτη-Εξυπηρέτη Ο πελάτης στέλνει (ships) την ερώτηση σε μία πλευρά. Η επεξεργασία της ερώτησης γίνεται στον εξυπηρέτη. ΕΞΥΠΗΡΕΤΗΣ

Αρχιτεκτονικές ΚΣΔΒΔ Συνεργαζόμενων εξυπηρετών Μια ερώτηση εκτελείται σε πολλές πλευρές ΕΞΥΠΗΡΕΤΗΣ ΕΞΥΠΗΡΕΤΗΣ ΕΞΥΠΗΡΕΤΗΣ ερώτηση

Είδη ΚΒΔ Ομογενή: Κάθε πλευρά τρέχει τον ίδιο τύπο ΣΔΒΔ Ετερογενή : Κάθε πλευρά τρέχει διαφορετικά ΣΔΒΔ (διαφορετικά σχεσιακά ΣΔΒΔ ή και μη-σχεσιακά ΣΔΒΔ) Gateway ΣΔΒΔ1 ΣΔΒΔ2 ΣΔΒΔ3

Κατανεμημένες ΒΔ Ομογενείς Κατανεμημένες ΒΔ Το ίδιο λογισμικό και σχήμα ΒΔ σε όλους τους τόπους, τα δεδομένα είναι μοιρασμένα μεταξύ των τόπων. Στόχος: να φαίνεται σαν μια ενιαία ΒΔ, κρύβοντας την κατανομή της σε τόπους Ετερογενείς Κατανεμημένες ΒΔ Διαφορετικό λογισμικό και σχήμα ΒΔ από τόπο σε τόπο Στόχος: η ολοκλήρωση διαφορετικών ΒΔ που ήδη υπάρχουν Διάκριση μεταξύ τοπικών (local) και γενικών (global) δοσοληψιών Μια τοπική δοσοληψία προσπελαύνει δεδομένα στον τόπο από τον οποίο προήλθε. Μια γενική δοσοληψία είτε προσπελαύνει δεδομένα σε τόπο διαφορετικό από αυτόν από τον οποίο προήλθε είτε προσπελαύνει δεδομένα σε πολλούς τόπους.

Θέματα 1. Αποθήκευση Δεδομένων (κατατεμαχισμός, αντίγραφα (ομοιότυπα) 2. Επεξεργασία Ερωτήσεων 3. Επεξεργασία Δοσοληψιών

Αποθήκευση Έστς μια σχέση r. Πως θα μπορούσε να αποθηκευτεί σε μια κατανεμημένη βάση δεδομένων; Κατατεμαχισμός (τμηματοποίηση): «κόβουμε» τη σχέση σε τμήματα και τα τοποθετούμε σε διαφορετικούς κόμβους Αντίγραφα (ομοιότυπα) Τμηματοποίηση και αντίγραφα

Αποθήκευση Δεδομένων Κατατεμαχισμός (fragmentation) Οριζόντιος Κάθετος TID t1 t2 t3 t4

Οριζόντιος Οριζόντιος Κατατεμαχισμός (horizontal fragmentation) Με βάση κάποια συνθήκη πράξη επιλογής (σ) Τα τμήματα μπορεί να είναι ξένα (κάθε εγγραφή ανήκει σε ένα μόνο τμήμα) αλλά ανάλογα με το κατηγόρημα της επιλογής, μπορεί κάποιες εγγραφές να υπάρχουν σε σε περισσότερα από ένα τμήματα πως παίρνουμε πάλι την αρχική σχέση; Ενώσεις! R = r 1 r 2 r 3 r n

Κάθετος Κάθετος Κατατεμαχισμός (vertical fragmentation) με βάση ποια πράξη (προβολή π) πως παίρνουμε την αρχική σχέση; Με φυσικό σύνδεσμο. χωρίς απώλειες στη συνένωση; συμπεριλαμβάνουμε το πρωτεύον κλειδί (υπερκλειδί) σε κάθε κατάτμηση Προσθέτουμε ένα πεδίο tuple-id (TID) και χρησιμοποιούμε αυτό αντί για το κλειδί R = r 1 r 2 r 3 r ntid t1 t2 t3 t4

Αποθήκευση Δεδομένων Αντίγραφα -- Ομοιοτυπία (Replication) Διαθεσιμότητα Γρηγορότερος υπολογισμός ερωτήσεων. Σύγχρονο και Ασύγχρονος υπολογισμός ενημέρωση αντιγράφων. R1 R3 Κόμβος A R1 R2 Κόμβος Β

Άσκηση Δίνεται η σχέση R(A, B, C, D, E) με κλειδί το Α. Υπάρχουν 3 εφαρμογές που προσπελαύνουν την R. Η Ε1 προσπελαύνει τα Α, Β, C και συμβάλλει στο 40% των προσπελάσεων Η Ε2 προσπελαύνει τα C, E και συμβάλλει στο 20% των προσπελάσεων Η Ε3 προσπελαύνει τα D, E και συμβάλλει στο 40% των προσελάσεων Ποιά είναι η καλύτερη κάθετη κατάτμηση της R σε 2 τμήματα και γιατί; R1(A, B, C, E) R2(A, D, E) R1(A, B, C, E) R2(A, D) R1(A, B, C) R2(D, E) R1(A, B, C) R2(A, D, E)

R1(A, B, C, E) R2(A, D, E) Δεν είναι επιθυμητή γιατί αντιγράφει το Ε που δεν είναι κλειδί 60/40 split R1(A, B, C, E) R2(A, D) Δεν είναι επιθυμητή γιατί 40% των προσπελάσεων απαιτούν τη συνένωση R1 και R2 (E3) R1(A, B, C) R2(D, E) Δεν είναι επιθυμητή γιατί η R δεν μπορεί να ανασυνθεθεί από τις R1, R2 (tuple id A δεν υπάρχει και στους 2 πίνακες) R1(A, B, C) R2(A, D, E) Είναι η προτιμότερη καθώς μόνο 20% των προσπελάσεων (Ε2) απαιτεί την συνένωση Άσκηση

Κατάλογος Συστήματος Διατήρηση πληροφορίας για την κατανομή των δεδομένων στους κόμβους Όνομα για κάθε αντίγραφο σε κάθε κόμβο. Διατήρηση τοπικής αυτονομίας <local-name, birth-site> Κατάλογος σε κάθε κόμβο: Περιγράφει κάθε αντικείμενο (τεμάχιο, αντίγραφο) στον κόμβο + κρατά πληροφορία για τα αντίγραφα των σχέσεων που δημιουργήθηκαν στον κόμβο. Εύρεση σχέσης, αναζήτηση στον κατάλογο στον κόμβο που δημιουργήθηκε. Ο κόμβος που δημιουργήθηκε η σχέση δεν αλλάζει ακόμα και αν η σχέση μετακινηθεί.

Θέματα 1. Αποθήκευση Δεδομένων (διαμέριση, αντίγραφα (ομοιότυπα) 2. Επεξεργασία Ερωτήσεων 3. Επεξεργασία Δοσοληψιών

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

Επεξεργασία Ερωτήσεων SELECT AVG(S.age) FROM Sailors S WHERE S.rating > 3 AND S.rating < 7 Οριζόντιος κατατεμαχισμός: Οι πλειάδες με rating < 5 στη Shanghai, >= 5 στοtokyo. Πρέπει να υπολογίσουμε SUM(age), COUNT(age) και στους δύο κόμβους. Αν το WHERE περιείχε μόνο S.rating > 6, θα αρκούσε ο υπολογισμός σε έναν μόνο κόμβο.

Επεξεργασία Ερωτήσεων SELECT... FROM Sailors S WHERE S.rating > κ1 AND S.rating < κ2 Μετασχηματισμoί της ερώτησης Οριζόντιος σ S.rating > κ1 and S.rating < κ2 (S) = κατατεμαχισμός σ S.rating > κ1 and S.rating < κ2 (S1 S2) = Οριζόντιος κατατεμαχισμός: Οι πλειάδες S1 με rating < 5 στη Shanghai, oι πλειάδες S2 με rating >= 5 στοtokyo. σ S.rating > κ1 and S.rating < κ2 σ S.rating > κ1 and S.rating < κ2 σ S.rating > κ1 and S.rating < κ2 σ S.rating > κ1 and S.rating < κ2 Εκτέλεση στο Tokyo (S1) (S2) Εκτέλεση στη Shanghai (σ S.rating < 5 (S)) (σ S.rating >= 5 (S)) Δυνατές απλοποιήσεις;

Επεξεργασία Ερωτήσεων SELECT AVG(S.age) FROM Sailors S WHERE S.rating > 3 AND S.rating < 7 Κάθετος κατατεμαχισμός : sid και rating στη Shanghai, sname and age στοtokyo, tid και στους δύο κόμβους. Πρέπει πρώτα να ξανά-σχηματιστεί η σχέση με συνένωση στο tid, και μετά να υπολογιστεί η ερώτηση

Επεξεργασία Ερωτήσεων SELECT... FROM Sailors S WHERE S.rating > κ1 AND S.rating < κ2 Κάθετος κατατεμαχισμός: sid και rating στη Shanghai, sname and age στοtokyo, tid και στους δύο κόμβους. Μετασχηματισμoί της ερώτησης σ S.rating > κ1 and S.rating < κ2 (S) = σ S.rating > κ1 and S.rating < κ2 (S1 * S2) = Κάθετος κατατεμαχισμός

Επεξεργασία Ερωτήσεων SELECT AVG(S.age) FROM Sailors S WHERE S.rating > 3 AND S.rating < 7 Αντίγραφα: αντίγραφα της σχέσης Sailors και στους δύο κόμβους. Επιλογή του κόμβου με βάση το τοπικό κόστος και το κόστος για την μεταφορά του αποτελέσματος

Επεξεργασία Ερωτήσεων: Κατανεμημένη Συνένωση LONDON S PARIS R D κόστος εγγραφής/ανάγνωσης σελίδας Τ κόστος μεταφοράς σελίδας 500 pages 1000 pages Μεταφορά όταν χρειάζεται, Εμφωλευμένος βρόγχος με τη σχέση S στον εξωτερικό βρόγχο : Κόστος: 500 D + 500 * 1000 (D+Τ)

Επεξεργασία Ερωτήσεων: Κατανεμημένη Συνένωση LONDON S PARIS R 500 pages 1000 pages Μεταφορά όταν χρειάζεται, Εμφωλευμένος βρόγχος με τη σχέση S στον εξωτερικό βρόγχο : Αν η ερώτηση δεν είχε υποβληθεί στο Λονδίνο πρέπει να προσθέσουμε και το κόστος μεταφοράς του αποτελέσματος στον κόμβο που αρχικά υποβλήθηκε η ερώτηση

Επεξεργασία Ερωτήσεων: Κατανεμημένη Συνένωση LONDON S PARIS R 500 pages 1000 pages Μεταφορά όλης της σχέσης σε έναν κόμβο: μεταφορά της Rs στο Λονδίνο Κόστος: 1000 Τ + 4500 D (με ταξινόμηση/συγχώνευση; κόστος = 3*(500+1000)D) Αν το μέγεθος του αποτελέσματος είναι πολύ μεγάλο, μπορεί να συμφέρει να μεταφέρουμε και τις δύο σχέσεις στον κόμβο υποβολής της ερώτησης και να υπολογίσουμε τη συνένωση εκεί

Επεξεργασία Ερωτήσεων: Ημι-Συνένωση Ημι-συνένωση LONDON S 500 pages PARIS R 1000 pages Ιδέα: Αποφυγή μεταφοράς όλης της σχέσης R στο Λονδίνο

Επεξεργασία Ερωτήσεων: Ημι-Συνένωση Ημι-συνένωση LONDON S 500 pages PARIS R 1000 pages Στο Λονδίνο, προβολή (project) S στις στήλες του join Μεταφορά του αποτελέσματος στο Παρίσι Στο Παρίσι, συνένωση της προβολής S με τη R. Το αποτέλεσμα ονομάζεται Ελάττωση (reduction) της R σε σχέση με τη S. Μεταφορά της ελάττωσης της σχέσης R στο Λονδίνο Στο Λονδίνο, συνένωση S με την ελάττωση της R.

Επεξεργασία Ερωτήσεων: Ημι-Συνένωση Ημι-συνένωση LONDON S 500 pages PARIS R 1000 pages Ιδέα: Αποφυγή μεταφοράς όλης της σχέσης R στο Λονδίνο -- με την επιβάρυνση του υπολογισμού και της μεταφοράς της προβολής της S και του υπολογισμού της συνένωσης της προβολής με τη R Ιδιαίτερα χρήσιμο όταν υπάρχει μια συνθήκη επιλογής στη σχέση S, και η απάντηση πρέπει να δοθεί στο Λονδίνο

Επεξεργασία Ερωτήσεων Παραλληλισμός στην εκτέλεση της συνένωσης R1 Join R2 Join R3 Join Rn

Επεξεργασία Ερωτήσεων Υπολογισμός όλων των πλάνων - επιλογή αυτού με το μικρότερο κόστος Διαφορά 1: Κόστος επικοινωνίας Διαφορά 2: Τοπική αυτονομία κάθε κόμβου Διαφορά 3: Νέοι τρόποι υπολογισμού κατανεμημένης συνένωσης Κατασκευή ολικού πλάνου -- κάθε κόμβος εκτελεί το δικό του κομμάτι με τον καλύτερο (τοπικά) τρόπο

Θέματα 1. Αποθήκευση Δεδομένων (διαμέριση, αντίγραφα (ομοιότυπα) 2. Επεξεργασία Ερωτήσεων 3. Επεξεργασία Δοσοληψιών

Ενημέρωση Κατανεμημένων Δεδομένων 1. Διαχείριση αντιγράφων 2. Κατανεμημένη Διαχείριση Δοσοληψιών 3. Κατανεμημένη Ανάρρωση από Αποτυχίας

Ενημέρωση Κατανεμημένων Δεδομένων Πολλαπλά αντίγραφα δεδομένων Σύγχρονη Ενημέρωση Αντιγράφων: Όλα τα αντίγραφα μιας τροποποιημένης σχέσης (τεμάχια) πρέπει να τροποποιηθούν πριν την επικύρωση της δοσοληψίας Η κατανομή των δεδομένων είναι αδιαφανής (transparent) στους χρήστες Ασύγχρονη Ενημέρωση Αντιγράφων : Τα αντίγραφα μιας σχέσης ενημερώνονται περιοδικά, διαφορετικά αντίγραφα μπορεί στα ενδιάμεσα διαστήματα να μην είναι ενημερωμένα (out of synch) Οι χρήστες γνωρίζουν την κατανομή των δεδομένων Πολλά προϊόντα ακολουθούν αυτήν την προσέγγιση

Σύγχρονη Ενημέρωση Αντιγράφων Μέθοδος της Πλειοψηφίας: Μια δοσοληψία πρέπει να γράψει την πλειοψηφία των αντιγράφων για να τροποποιήσει ένα αντικείμενο -- πρέπει να διαβάσει αρκετά αντίγραφα έτσι ώστε να δει τουλάχιστον ένα καινούριο (πιο πρόσφατο) αντίγραφο Για παράδειγμα, 10 αντίγραφα, 7 να γραφούν για τροποποίηση, 4 αντίγραφα για ανάγνωση Κάθε αντίγραφο έχει έναν αριθμό έκδοσης Πρόβλημα γιατί συνήθως οι αναγνώσεις είναι πιο συχνές από τις εγγραφές

Σύγχρονη Ενημέρωση Αντιγράφων Read-any Write-all: Σχετικά με τη μέθοδο της πλειοψηφίας, οι εγγραφές είναι αργές και οι αναγνώσεις πιο γρήγορες Η πιο συνηθισμένη προσέγγιση στη σύγχρονη ενημέρωση αντιγράφων Η επιλογή της τεχνικής καθορίζει ποια κλειδιά πρέπει να ζητηθούν

Σύγχρονη Ενημέρωση Αντιγράφων Πριν επικυρωθεί μια δοσοληψία (που περιλαμβάνει τροποποιήσεις) πρέπει να αποκτήσει κλειδιά σε όλα τα τροποποιημένα αντίγραφα Στέλνει αιτήσεις για κλειδιά σε απομακρυσμένους κόμβους και ενώ περιμένει για απάντηση κρατά τα άλλα κλειδιά Αν ένας κόμβος ή μια σύνδεση πέσει (αποτύχει), η δοσοληψία δε μπορεί να επικυρωθεί μέχρι να επιστρέψουν σε λειτουργία Ακόμα και αν δεν υπάρξει αποτυχία, η επικύρωση πρέπει να ακολουθήσει ένα ακριβό πρωτόκολλο επικύρωσης (commit protocol) με πολλά μηνύματα. Ασύγχρονη ενημέρωση των αντιγράφων

Ασύγχρονη Ενημέρωση Αντιγράφων Επιτρέπει την επικύρωση (commit) μιας δοσοληψίας πριν την ενημέρωση όλων των αντιγράφων (και οι αναγνώσεις μπορεί να διαβάζουν μόνο ένα αντίγραφο) να επικυρωθεί. Οι χρήστες γνωρίζουν ποιο αντίγραφο διαβάζουν και ότι τα αντίγραφα μπορεί να μην είναι ενημερωμένα για κάποια μικρά χρονικά διαστήματα Δύο προσεγγίσεις: Πρωτεύον Κόμβος (primary site) και Peer-to-Peer : Bάσει του αριθμού των αντιγράφων που μπορούν να ενημερωθούν (master copies)

Ασύγχρονη Ενημέρωση Αντιγράφων Peer-to-Peer Περισσότερα από ένα master αντίγραφα ενός αντικειμένου (αντίγραφα που μπορεί να τροποποιηθούν) Τροποποιήσεις κάποιου master αντιγράφου πρέπει κάπως να μεταδοθούν στα άλλα αντίγραφα Όταν δυο master αντίγραφα τροποποιούνται με συγκρουόμενο τρόπο, πρέπει να διευθετηθούν οι συγκρούσεις (π.χ., κόμβος 1: η ηλικία του Joe άλλαξε σε 35; Κόμβος 2: σε 36) Προτιμότερη όταν δεν συμβαίνουν συγκρούσεις: Π.χ., Κάθε master κόμβος κατέχει ένα ξένο τεμάχιο Π.χ.,Τροποποίηση δικαιωμάτων που κατέχονται από ένα master τη φορά

Ασύγχρονη Ενημέρωση Αντιγράφων Πρωτεύουσα Αντιγραφή Τροποποίηση ακριβώς ενός αντιγράφου μιας σχέσης (αντικειμένου) χαρακτηρίζεται ως πρωτεύον ή master αντίγραφο. Αντίγραφα σε άλλους κόμβους δε μπορούν να τροποποιηθούν άμεσα. Κοινοποιείται ποιο είναι το πρωτεύον αντίγραφο. Οι άλλοι κόμβοι εγγράφονται σε (τεμάχια) της σχέσης, είναι δευτερεύοντα αντίγραφα.

Ασύγχρονη Ενημέρωση Αντιγράφων Βασικό Θέμα: Πως οι τροποποιήσεις στο πρωτεύον αντίγραφο μεταδίδονται στα δευτερεύοντα αντίγραφα Γίνεται σε δύο βήματα Εντοπισμός των αλλαγών Εφαρμογή των αλλαγών

Ασύγχρονη Ενημέρωση Αντιγράφων Εντοπισμός των Αλλαγών Log-Based Εντοπισμός: Το ημερολόγιο του συστήματος (log) που κρατείται για ανάρρωση χρησιμοποιείται για τη δημιουργία ενός πίνακα που καλείται Change Data Table (CDT). Αν αυτό γίνεται όταν το log tail γράφεται στο δίσκο τότε με κάποιο τρόπο να σβηστούν οι τροποποιήσεις που οφείλονται σε δοσοληψίες που απορρίπτονται αργότερα. Διαδικαστικός Εντοπισμός: Μια διαδικασία καλείται αυτόματα (συνήθως παίρνει απλώς ένα στιγμιότυπο). Ο Log-Based εντοπισμός είναι καλύτερος (φθηνότερος, πιο γρήγορος) αλλά βασίζεται σε proprietary λεπτομέρειες του log.

Ασύγχρονη Ενημέρωση Αντιγράφων Εφαρμογή των Αλλαγών Η διαδικασία της εφαρμογής των αλλαγών στο δευτερεύοντα κόμβο δέχεται περιοδικά από τον πρωτεύοντα κόμβο ένα στιγμιότυπο ή τις αλλαγές και τροποποιεί το αντίγραφο. Η περίοδος είτε ορίζεται από το χρήστη ή την εφαρμογή είτε βασίζεται στο χρόνο. Log-Based εντοπισμός και συνεχής εφαρμογή των αλλαγών ελαχιστοποιεί την καθυστέρηση στη μετάδοση των αλλαγών. Διαδικαστικός εντοπισμός και εφαρμογή που καθορίζεται από τις εφαρμογές είναι ο πιο ευέλικτος τρόπος για τη διαχείριση των αλλαγών.

Κατανεμημένο Κλείδωμα Αντιγράφων Πως γίνεται η διαχείριση των κλειδιών για δεδομένα στους διαφορετικούς κόμβους; Κεντρικά (Centralized): Ένας κόμβος είναι υπεύθυνος για τη διαχείριση όλων των κλειδιών. Αποτυχία του κόμβου; Πρωτεύον αντίγραφο: Η διαχείριση των κλειδιών για ένα αντικείμενο γίνεται στον κόμβο όπου βρίσκεται το πρωτεύον αντίγραφο του αντικειμένου Η ανάγνωση απαιτεί προσπέλαση και στον κόμβο που διαχειρίζεται τα κλειδιά και του κόμβου όπου είναι αποθηκευμένο το αντικείμενο. Πλήρως κατανεμημένη: Η διαχείριση του κλειδιού για ένα αντίγραφο γίνεται στον κόμβο που βρίσκεται το αντίγραφο Η εγγραφή απαιτεί κλειδιά σε όλους τους κόμβους

Κατανεμημένη Ανίχνευση Αδιεξόδων Κάθε κόμβος διατηρεί έναν τοπικό waits-for γράφο. Ένα ολικό αδιέξοδο μπορεί να δημιουργηθεί ακόμα και αν οι τοπικοί κόμβοι δεν περιέχουν κύκλους: T1 T2 T1 T2 T1 T2 SITE A SITE B GLOBAL

Κατανεμημένη Ανίχνευση Αδιεξόδων Τρεις λύσεις: Κεντρική (αποστολή όλων των τοπικών γράφων σε έναν κόμβο) T1 Hierarchical (οργάνωση κόμβων σε μια ιεραρχία και αποστολή γράφων στον γονέα στην ιεραρχία Timeout (απόρριψη μιας δοσοληψίας αν περιμένει για πάρα πολύ). T2 Αντίστοιχοι deadlock prevention

Κατανεμημένη Ανάκαμψη Δυο νέα θέματα: Δυο νέα ειδών αποτυχιών, π.χ., συνδέσεις και απομακρυσμένοι κόμβοι. Αν τμήματα μιας δοσοληψίας εκτελούνται σε διαφορετικούς κόμβους όλες ή καμία πρέπει να επικυρωθούν πρωτόκολλο επικύρωσης. Διατηρείται ένα log σε κάθε κόμβο, όπως και στα κεντρικά ΣΔΒΔ στο οποίο καταγράφονται και οι πράξεις του πρωτοκόλλου

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Πρωτόκολλο Επικύρωσης Δύο Φάσεων (Two Phase Commit Protocol 2PC) Ο κόμβος από τον οποίο ξεκίνησε μια δοσοληψία είναι ο συντονιστής (coordinate) -- οι υπόλοιποι κόμβοι που συμμετέχουν στην εκτέλεση της δοσοληψίας ορίζονται ως συμμετέχοντες (subordinates).

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Όταν μια δοσοληψία πρέπει να επικυρωθεί: Φάση 1 1. Ο συντονιστής στέλνει ένα μήνυμα prepare σε όλους τους συμμετέχοντες κόμβους. 2. Κάθε συμμετέχον κόμβος force-writes μια εγγραφή abort ή prepare στο log και μετά στέλνει ένα μήνυμα no ή yes στον συντονιστή.

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Φάση 2 Αν ο συντονιστής δεχθεί μηνύματα yes από όλους, forcewrites μια εγγραφή commit στο log και μετά στέλνει ένα μήνυμα commit σε όλους τους συμμετέχοντες κόμβους. Αλλιώς, force-writes μια εγγραφή abort στο log και μετά στέλνει ένα μήνυμα abort. Κάθε συμμετέχον κόμβος βάσει του μηνύματος που δέχεται, force-writes μια εγγραφή abort/commit στο log, και μετά στέλνει ένα μήνυμα ack στον συντονιστή. Ο συντονιστής αφού λάβει όλα τα acks γράφει μια εγγραφή end στο log.

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Δυο γύροι επικοινωνίας: πρώτα ψηφοφορία (voting) και μετά τερματισμός. Και οι δυο ξεκινούν από τον συντονιστή. Οποιοσδήποτε κόμβος μπορεί να αποφασίσει να απορρίψει μια δοσοληψία. Κάθε μήνυμα αντιστοιχεί σε μια απόφαση του αποστολέα: για την αντιμετώπιση των αποτυχιών αυτή η απόφαση καταγράφεται στο τοπικό log (πριν σταλεί) Όλες οι εγγραφές στο log που αφορούν το πρωτόκολλο επικύρωσης περιέχουν το id της δοσοληψίας Xactid και το id του κόμβου του συντονιστή Coordinatorid. Οι εγγραφές abort/commit περιέχουν τα ids όλων των κόμβων που συμμετέχουν

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Αν για μια δοσοληψία Τ έχουμε μια εγγραφή commit ή abort αλλά δεν έχουμε μια εγγραφή end, πρέπει η Τ να γίνει ή redo ή undo Αν αυτός ο κόμβος είναι ο συντονιστής για την T, θα πρέπει να συνεχίσει να στέλνει μηνύματα commit/abort μέχρι να λάβει acks από όλους τους συμμετέχοντες κόμβους

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Αν για μια δοσοληψία Τ έχουμε μια εγγραφή prepare αλλά δεν έχουμε μια εγγραφή commit/abort, αυτός ο κόμβος πρέπει να είναι συμμετέχον κόμβος Επαναληπτικά επικοινωνεί με το συντονιστή για να βρει την κατάσταση της Τ, γράφει εγγραφές commit/abort στο log redo/undo T γράφει εγγραφές end στο log

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Αν ο συντονιστής για την T αποτύχει, οι συμμετέχοντες κόμβοι που έχουν ψηφίσει δεν μπορούν να αποφασίσουν αν θα πρέπει να επικυρώσουν ή να ακυρώσουν την T μέχρι να αναρρώσει ο συντονιστής. T is blocked. Ακόμα και αν όλοι οι συμμετέχοντες κόμβοι γνωρίζουν ο ένας τον άλλο (επιπλέον overhead στα μηνύματα prepare) δεν μπορούν να αποφασίσουν εκτός αν ένας από αυτούς έχει ψηφίσει no

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Αν για μια δοσοληψία Τ δεν έχουμε ούτε μια εγγραφή prepare, abort και undo T. Αυτός ο κόμβος μπορεί να είναι ο συντονιστής. Σε αυτήν την περίπτωση μπορεί οι συμμετέχοντες να στείλουν μηνύματα.

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Αν ένας κόμβος δεν αποκρίνεται σε έναν κόμβο x κατά τη διάρκεια του πρωτοκόλλου επικύρωσης επειδή είτε ο κόμβος είτε η σύνδεση έχει αποτύχει: Αν ο κόμβος x είναι ο συντονιστής, πρέπει να απορρίψει την T. Αν ο κόμβος x είναι συμμετέχον, και δεν έχει ακόμα ψηφίσει yes, πρέπει να απορρίψει την T. Αν ο κόμβος x είναι συμμετέχον, και έχει ψηφίσει yes, πρέπει να περιμένει μέχρι να αποκριθεί ο συντονιστής

Πρωτόκολλο Επικύρωσης Δύο Φάσεων Μηνύματα Ack χρησιμοποιούνται για να ειδοποιήσουν τον συντονιστή ότι μπορεί να «ξεχάσει» τη δοσοληψία, μέχρι να λάβει αυτό το μήνυμα πρέπει να κρατά τη δοσοληψία στον πίνακα δοσοληψιών Αν ο συντονιστής αποτύχει αφού στείλει μηνύματα prepare αλλά πριν γράψει τις εγγραφές commit/abort, τότε κάνει τη δοσοληψία abort Αν η δοσοληψία δεν περιλαμβάνει ενημερώσεις, τότε δεν έχει σημασία αν γίνει commit ή abort

Περίληψη Τα κατανεμημένα ΣΔΒΔ προσφέρουν αυτονομία σε κάθε κόμβο και κατανεμημένη διαχείριση. Χρειάζονται νέες τεχνικές αποθήκευσης, διαχείρισης του καταλόγου, ελέγχου συνδρομικότητας και ανάκαμψης.