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

Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος

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

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

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

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

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

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

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

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

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

Προχωρημένα Θέματα Βάσεων Δεδομένων

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

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

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

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

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΠΕΡΙΛΗΨΗ Vcommunity V Community

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

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

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

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

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Τ και τιµή του Β θετική µετατρέπεται ισοδύναµα στην εντολή Όσο ως εξής:

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

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

επιµέλεια Θοδωρής Πιερράτος

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

SELECT DISTINCT EIDOS_EISERXOMENOY, COUNT (EIDOS_EISERXOMENOY) AS "Αριθµός" FROM TESTOTA.REGISTRY GROUP BY EIDOS_EISERXOMENOY ORDER BY "Αριθµός" DESC

Επεξεργασία Ερωτήσεων: Επανάληψη και Ασκήσεις

Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

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

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2017 Β ΦΑΣΗ ÅÐÉËÏÃÇ

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

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

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

Η ακρίβεια ορίζεται σαν το πηλίκο των ευρεθέντων συναφών εγγράφων προς τα ευρεθέντα έγγραφα. Άρα για τα τρία συστήµατα έχουµε τις εξής τιµές:

DELETE, UPDATE, INSERT.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

DELETE, UPDATE, INSERT

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα


Πανεπιστήμιο Πειραιώς, Τμήμα Πληροφορικής

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

Εφαρµογές των πολυµέσων

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project

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

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

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

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

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

Ιδιοκτησία Αντικειµένου

Σχεσιακή δοµή δεδοµένων

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

Επισκόπιση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Collecting Messages Statistics

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Simulation Commands

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Φάσµα & group. μαθητικό φροντιστήριο. σύγχρονo. προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

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

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

Συλλογή,, αποθήκευση, ανανέωση και παρουσίαση στατιστικών δεδοµένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e


Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Certified Data Base Designer (CDBD)

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΦΘΙΝΟΠΩΡΟ 2007 Λύση ΑΣΚΗΣΗΣ #2 Τ. Σελλής ΕΡΩΤΗΜΑ 1: ΙΑΧΕΙΡΙΣΗ ΑΝΤΙΓΡΑΦΩΝ ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Θεωρούµε ένα κατανεµηµένο Σύστηµα ιαχείρισης Βάσεων εδοµένων µε τέσσερις κόµβους Μ, Ν1, Ν2 και Ν3 και δύο αντικείµενα* που µας ενδιαφέρουν Χ, Υ. Ο κόµβος Μ είναι ο κόµβος µε τα πρωτεύοντα αντίγραφα και για τα δύο αντικείµενα. Αντίγραφα του Χ υπάρχουν και στους κόµβους Ν1, Ν2, ενώ αντίγραφα του Υ υπάρχουν σε όλους τους κόµβους. Έστω ότι στο συγκεκριµένο σύστηµα µπορούν να υλοποιηθούν οι ακόλουθες στρατηγικές για τον χειρισµό των updates: 1. Σύγχρονος αλγόριθµος (eager replication): Οι εγγραφές πραγµατοποιούνται υποχρεωτικά σε όλα τα αντίγραφα ταυτόχρονα µε τον κόµβο που ζήτησε την εγγραφή (µε κάθε κόµβο να έχει δικό του διαχειριστή κλειδωµάτων), ενώ η ανάγνωση ενός αντικειµένου µπορεί να πραγµατοποιηθεί τοπικά σε κάθε κόµβο. 2. Ασύγχρονος αλγόριθµος πρωτεύοντος αντίγραφου (lazy master replication): Όλοι οι κόµβοι εκτός από τον κόµβο µε το πρωτεύον αντίγραφο (master) έχουν αντίγραφα µε δικαίωµα µόνο για ανάγνωση (read only). Οι εγγραφές (updates) πραγµατοποιούνται µόνο στον κόµβο µε το πρωτεύον αντίγραφο και στο τέλος της δοσοληψίας µοιράζονται στους υπόλοιπους κόµβους (αυτή η µέθοδος στη διάλεξη ονοµάστηκε primary-copy locking). 3. Ασύγχρονος οµαδικός αλγόριθµος (lazy group replication): Κάθε κόµβος έχει τον δικό του διαχειριστή κλειδωµάτων. Οι εγγραφές (και φυσικά και οι αναγνώσεις) µπορούν να γίνουν τοπικά σε οποιονδήποτε κόµβο έχει ένα αντίγραφο και µοιράζονται στους υπόλοιπους κόµβους στο τέλος της δοσοληψίας. Έστω ότι πρέπει να εκτελεστεί στον κόµβο Ν1 η δοσοληψία: T = W(X) R(Y) W(Y). Για κάθε µία από τις στρατηγικές (1-3) για τον χειρισµό updates, δώστε όλα τα βήµατα της εκτέλεσης της δοσοληψίας Τ (αιτήσεις για κλειδώµατα, πράξεις στα δεδοµένα, ανταλλαγή δεδοµένων ανάµεσα στους κόµβους). Επίσης, αναλύστε εν συντοµία τα πιθανά προβλήµατα που µπορεί να έχει η κάθε στρατηγική. * Ως αντικείµενα µπορούµε να θεωρήσουµε απλές εγγραφές, σελίδες ή ακόµα και ολόκληρα τµήµατα (segments) κάποιας σχέσης. 1

Λύση 1. Σύγχρονος αλγόριθµος (eager replication): (a) Ζητείται η εκτέλεση της δοσοληψίας T στον κόµβο Ν1. (b) Η T κλειδώνει το X µε X_LOCK στους κόµβους M, Ν1 και Ν2. (c) Ο κόµβος Ν1 ζητάει από τους κόµβους Μ και Ν2 να κάνουν W(X). W(X) στους κόµβους M, Ν1 και Ν2. (d) Η T κλειδώνει το τοπικό αντίγραφο του Υ στον κόµβο Ν1 µε S_LOCK. (e) R(Y) στον κόµβο Ν1. (f) Η T κλειδώνει το Υ µε X_LOCK σε όλους τους κόµβους (M, Ν1, Ν2 και Ν3). (g) Ο κόµβος Ν1 ζητάει από όλους τους κόµβους (M, Ν2 και Ν3) να κάνουν W(X). W(Υ) σε όλους τους κόµβους (h) Η T κάνει commit στον κόµβο Ν1 και ελευθερώνει όλα τα κλειδώµατα για τα X,Y. Ο σύγχρονος αλγόριθµος εγγυάται ότι δεν θα υπάρξουν ασυνέπειες στα δεδοµένα, ότι τα updates είναι ατοµικές πράξεις και ότι η ανάγνωση ενός τοπικού αντίγραφου θα επιστρέφει πάντα την πιο πρόσφατη τιµή της µεταβλητής στο σύστηµα. Όµως, έχει πολύ µεγάλο κόστος εκτέλεσης (µεγαλύτερο χρόνο εκτέλεσης, χειρότερο δυνατό συνολικό χρόνο απόκρισης/απάντησης) καθώς πρέπει να γίνονται update όλοι οι κόµβοι µε αντίγραφα. 2. Ασύγχρονος αλγόριθµος πρωτεύοντος αντίγραφου (lazy master replication): (a) Ζητείται η εκτέλεση της δοσοληψίας T στον κόµβο Ν1. (b) Ο κόµβος Ν1 ζητάει από τον κόµβο Μ να κάνει W(X). (c) Ο κόµβος M κλειδώνει το πρωτεύον αντίγραφο του X µε X_LOCK. (d) W(X) στον κόµβο M. (e) Ο κόµβος M ενηµερώνει τη δοσοληψία T στον κόµβο Ν1 ότι το W(X) ολοκληρώθηκε επιτυχώς. (f) Η T κλειδώνει τοπικά (στον κόµβο Ν1) το Υ µε S_LOCK και εκτελεί το R(Y). (g) Ο κόµβος Ν1 ζητάει από τον κόµβο Μ να κάνει W(Υ). (h) Ο κόµβος M κλειδώνει το πρωτεύον αντίγραφο του Υ µε X_LOCK. (i) W(Υ) στον κόµβο M. (j) Ο κόµβος M ενηµερώνει τη δοσοληψία T στον κόµβο Ν1 ότι το W(Υ) ολοκληρώθηκε επιτυχώς. (k) Η T κάνει commit στον κόµβο Ν1 και ελευθερώνει όλα τα κλειδώµατα για τα X,Y. (l) Ο κόµβος M στέλνει όλα τα updates στους υπόλοιπους κόµβους (W(X) στους Ν1 και Ν2 και W(Y) στους Ν1, Ν2 και Ν3). Ο ασύγχρονος αλγόριθµος πρωτεύοντος αντίγραφου είναι αρκετά πιο γρήγορος σε σχέση µε τον σύγχρονο αλγόριθµο. Όµως, ο φόρτος στον κόµβο µε το πρωτεύον αντίγραφο µπορεί να είναι πολύ µεγάλος και να µετατραπεί σε bottleneck για το σύστηµα. Επίσης, η ανάγνωση των τοπικών αντιγράφων είναι δυνατόν να οδηγήσει στο να µην διαβαστεί η πιο πρόσφατη τιµή της µεταβλητής στο σύστηµα. 3. Ασύγχρονος οµαδικός αλγόριθµος (lazy group replication): (a) Ζητείται η εκτέλεση της δοσοληψίας T στον κόµβο Ν1. (b) Η T κλειδώνει το τοπικό αντίγραφο του Χ στον κόµβο Ν1 µε Χ_LOCK. (c) W(X) στον κόµβο Ν1. 2

(d) Η T κλειδώνει το τοπικό αντίγραφο του Υ στον κόµβο Ν1 µε S_LOCK. (e) R(Y) στον κόµβο Ν1. (f) Η T κλειδώνει το τοπικό αντίγραφο του Υ στον κόµβο Ν1 µε Χ_LOCK. (g) W(Υ) στον κόµβο Ν1. (h) Η T κάνει commit στον κόµβο Ν1 και ελευθερώνει όλα τα τοπικά κλειδώµατα για τα X,Y. (i) Ο κόµβος Ν1 στέλνει όλες τις αλλαγές στους υπόλοιπους κόµβους. Με τη συγκεκριµένη στρατηγική ο κάθε κόµβος µπορεί να εκτελεί πλήρως τις δοσοληψίες που του έρχονται (οδηγώντας σε πολύ καλούς χρόνους απόκρισης εάν δεν ενοχλούν την εφαρµογή πιθανές ασυνέπειες στις τιµές των δεδοµένων) και ο φόρτος κατανέµεται ισοµερώς σε όλους τους κόµβους. Όµως, οδηγεί µε µεγάλη πιθανότητα σε ασυνέπειες στα δεδοµένα και απαιτεί συγχρονισµό ανάµεσα στα αντίγραφα εάν θέλουµε να αποφευχθεί το συγκεκριµένο πρόβληµα (π.χ. µε κάποιο µηχανισµό ελέγχου όπως τα timestamps). ΕΡΩΤΗΜΑ 2: ΕΠΕΞΕΡΓΑΣΙΑ ΕΡΩΤΗΣΕΩΝ ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Θεωρείστε τις ακόλουθες σχέσεις, οι οποίες ανήκουν στην κατανεµηµένη βάση δεδοµένων παιχτών της ιεθνούς Ανεξάρτητης Αρχής Στατιστικών Basket ( ιανα ΣτατιBa): PLAYER (P_ID, NAME, AGE, HEIGHT, NATIONALITY, TEAM, POSITION, PointsPerGame) STATISTICS (STAT_ID, P_ID, DATE, MinsPlayed, POINTS, REBOUNDS, FOULS) Στις παραπάνω σχέσεις, για κάθε παίχτη καταγράφεται το ονοµατεπώνυµό του, η ηλικία του, το ύψος του, η εθνικότητά του, η οµάδα στην οποία παίζει αυτή τη στιγµή, η θέση που παίζει και ο µέσος όρος πόντων που σκοράρει ανά παιχνίδι. Αντίστοιχα, στα στατιστικά (σχέση STATISTICS) καταγράφονται για κάθε αγώνα στον οποίο παίζει ένας παίχτης η ηµεροµηνία του αγώνα, ο συνολικός χρόνος που έπαιξε, οι πόντοι του, τα rebounds που κέρδισε και τα fouls που έκανε. Η σχέση PLAYER έχει υποστεί οριζόντια κατάτµηση µε βάση την εθνικότητα των παιχτών (NATIONALITY) και η σχέση STATISTICS παραγόµενη κατάτµηση µε βάση την κατάτµηση της PLAYER. Στη συγκεκριµένη Οµοσπονδία ανήκουν 160 χώρες, µε την κάθε χώρα να είναι υπεύθυνη για τη διατήρηση σε τοπικό κόµβο του κατανεµηµένου συστήµατος των στοιχείων των παιχτών που έχουν την εθνικότητα της χώρας. Τέλος, τα στατιστικά των παιχτών κρατούνται σε ξεχωριστούς κεντρικούς κόµβους ανά ήπειρο (π.χ. στην Γαλλία για την Ευρώπη). ώστε το βέλτιστο πλάνο εκτέλεσης για καθεµία από τις ακόλουθες ερωτήσεις που έχουν τεθεί στον κόµβο της Βραζιλίας: i. SELECT * WHERE NATIONALITY = GR ii. SELECT NATIONALITY, AVG(HEIGHT) WHERE (NATIONALITY = FR ) OR (NATIONALITY = IT ) GROUP BY NATIONALITY iii. SELECT AVG(PointsPerGame) 3

iv. SELECT NAME, AGE, HEIGHT, DATE, REBOUNDS, STATISTICS WHERE (STATISTICS.P_ID = PLAYER.P_ID) AND (PLAYER.POSITION = CENTER ) AND (NATIONALITY = GR ) Με δεδοµένο ότι δεν σας δίνονται χαρακτηριστικά µεγέθη των σχέσεων, σαν βέλτιστο προσδιορίστε το πλάνο που ποιοτικά θεωρείτε ότι θα είναι το καλύτερο και σύντοµα εξηγείστε το γιατί. Λύση i. Q1 = SELECT * WHERE NATIONALITY = GR 1. Εκτέλεση του Q1 στον κόµβο της Ελλάδας. 2. Μεταφορά των αποτελεσµάτων στη Βραζιλία. ii. SELECT NATIONALITY, AVG(HEIGHT) WHERE (NATIONALITY = FR ) OR (NATIONALITY = IT ) GROUP BY NATIONALITY Χρησιµοποιούµε τοπικά σε κάθε κόµβο το ακόλουθο query: Q2 = SELECT NATIONALITY, AVG(HEIGHT) 1. Εκτέλεση του Q2 στο κόµβο της Γαλλίας ( FR ). 2. Μεταφορά των αποτελεσµάτων (1 tuple) στη Βραζιλία. 3. Εκτέλεση του Q2 στο κόµβο της Ιταλίας ( IT ). 4. Μεταφορά των αποτελεσµάτων (1 tuple) στη Βραζιλία. 5. Ένωση (union) των αποτελεσµάτων στον κόµβο της Βραζιλίας. iii. SELECT AVG(PointsPerGame) Χρησιµοποιούµε τοπικά σε κάθε κόµβο το ακόλουθο query: Q3 = SELECT COUNT(*) as NumberOfPlayers, SUM(PointsPerGame) as TotalPoints 1. Αποστολή του Q3 στους κόµβους που αντιστοιχούν στις 160 χώρες. 2. Εκτέλεση του Q3 σε όλους τους κόµβους. 3. Μεταφορά των αποτελεσµάτων (1 tuple ανά χώρα * 160 χώρες) στη Βραζιλία. 4. Ένωση των αποτελεσµάτων και αποθήκευσή τους στην ενδιάµεση σχέση TMP1. 5. Εκτέλεση του query: Q4 = SELECT SUM(TotalPoints) as GlobalPoints, SUM(NumberOfPlayers) as GlobalPlayers FROM TMP1 4

Και αποθήκευση του στην ενδιάµεση σχέση TMP2 6. Εκτέλεση του query: Q5 = SELECT (GlobalPoints / GlobalPlayers) FROM TMP2 (τα βήµατα 5 και 6 θα µπορούσαν να γίνουν και σε ένα βήµα εάν το επιτρέπει το αντίστοιχο Σ Β ) iv. SELECT NAME, AGE, HEIGHT, DATE, REBOUNDS, STATISTICS WHERE (STATISTICS.P_ID = PLAYER.P_ID) AND (PLAYER.POSITION = CENTER ) AND (NATIONALITY = GR ) 1. Αποστολή του query Q6 στον κόµβο της Ελλάδας. Q6 = SELECT P_ID WHERE (PLAYER.POSITION = CENTER ) 2. Εκτέλεση του Q6 στον κόµβο της Ελλάδας και αποθήκευση των αποτελεσµάτων (P_IDs) στην ενδιάµεση σχέση TMP3. 3. Μεταφορά της TMP3 στον κόµβο της Γαλλίας (κεντρικός κόµβος µε στατιστικά για Ευρώπη). 4. Εκτέλεση του Q7 στον κόµβο της Γαλλίας: Q7 = STATISTICS TMP3 και αποθήκευση των αποτελεσµάτων στην ενδιάµεση σχέση TMP4. 5. Εκτέλεση του Q8 στον κόµβο της Γαλλίας: Q8 = SELECT P_ID, DATE, REBOUNDS FROM TMP4 και αποθήκευση των αποτελεσµάτων στην ενδιάµεση σχέση TMP_STATS. 6. Μεταφορά της TMP_STATS στον κόµβο της Βραζιλίας. 7. Εκτέλεση του Q9 στον κόµβο της Ελλάδας: Q9 = SELECT P_ID, NAME, AGE, HEIGHT, WHERE (PLAYER.POSITION = CENTER ) 5

και αποθήκευση των αποτελεσµάτων στην ενδιάµεση σχέση TMP_PLAYER. 8. Μεταφορά της TMP_PLAYER στον κόµβο της Βραζιλίας. 9. Εκτέλεση του Q10 στον κόµβο της Βραζιλίας: Q10 = TMP_PLAYER TMP_STATS 6