1 Θέματα Hash Join Κώστας Λίλλης Ελένη Γεώργα. 2 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation.

Slides:



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

© 2002 Thomson / South-Western Slide 2-1 Κεφάλαιο 2 Διαγράμματα και Γραφήματα Περιγράφικής Στατιστικής.
«Κυβερνητικές προτάσεις για το Ασφαλιστικό» © VPRC – Μάρτιος / Δ.1 © VPRC – Μάρτιος 2008 ΚΥΒΕΡΝΗΤΙΚΕΣ ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΤΟ ΑΣΦΑΛΙΣΤΙΚΟ.
ΑΠΟΤΙΜΗΣΗ ΑΠΟΔΟΣΗΣ ΔΙΚΤΥΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΞΙΟΠΙΣΤΑ ΠΡΩΤΟΚΟΛΛΑ ΜΕΤΑΦΟΡΑΣ ΚΑΙ ΑΞΙΟΠΙΣΤΑ ΠΡΩΤΟΚΟΛΛΑ ΣΥΝΔΕΣΗΣ Ιωάννης Κόμνιος Μεταπτυχιακή Διατριβή Τμήμα.
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
Σχέση ισοτιμίας και εισοδήματος
Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Πρωτογενής έρευνα Hi5, μία μόδα για νέους;. Μεθοδολογία - εργαλεία Η έρευνα διενεργήθηκε με την μέθοδο της συλλογής ερωτηματολογίων, τα οποία και συμπληρώνονταν.
Βασικές Συναρτήσεις Πινάκων
Επιμέλεια: Διογένης Κοσμόπουλος 2ο ΓΕΛ Αργυρούπολης.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
Τα στοιχειώδη περί γεωδαιτικών υπολογισμών
1 ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΤΗΝ ΟΡΓΑΝΩΤΙΚΗ ΔΟΜΗ ΤΗΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΔΙΕΡΕΥΝΗΣΗΣ ΤΗΣ ΦΥΜΑΤΙΩΣΗΣ ΣΕ ΕΘΝΙΚΟ ΕΠΙΠΕΔΟ Ευάγγελος Μαρίνης Επίτιμος Διευθυντής Μικροβιολογικού.
Κατακερματισμός Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Επεξεργασία ερωτήσεων Πάνος Βασιλειάδης Ιανουάριος 2008
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Βάσεις Δεδομένων (ΚΒΔ)
Ασκήσεις Caches
Ανάλυση του λευκού φωτός και χρώματα
© GfK 2012 | Title of presentation | DD. Month
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
ΒΑΡΟΜΕΤΡΟ ΕΒΕΘ – ΣΕΠΤΕΜΒΡΙΟΣ 2014 AD – HOC ΕΡΩΤΗΣΕΙΣ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Εξάσκηση στην προπαίδεια
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
Η επιρροή του χώρου εργασίας των σχολικών τάξεων στη μάθηση
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
1/5/ ΧΡΗΣΕΙΣ ΤΗΣ ΗΛΙΑΚΗΣ ΑΝΤΙΝΟΒΟΛΙΑΣ 1/5/ (πηγή: HELIOAKMI).
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών – Κέρκυρα Οκτωβρίου 2004 Το σύστημα COINE για την προβολή της πολιτιστικής κληρονομιάς και την υποστήριξη.
ΚΕΦΑΛΑΙΟ 3 Περιγραφική Στατιστική
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
ΕΡΕΥΝΑ ΕΚΘΕΤΩΝ-ΕΠΙΣΚΕΠΤΩΝ KAVALAEXPO 2014
Σοφία Τζελέπη, App Inventor ΜΕΡΟΣ B’ Σοφία Τζελέπη,
Εργαστήριο Δασικής Διαχειριστικής & Τηλεπισκόπησης Ασκήσεις Δασικής Διαχειριστικής Ι Διδάσκων Δημήτριος Καραμανώλης, Επίκουρος Καθηγητής Άσκηση 4.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Ο ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
Dr. Holbert Νικ. Α. Τσολίγκας Χρήστος Μανασής
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
1 Νέα Θεωρία Μεγέθυνσης Ενδογενής μεγέθυνση. 2 Συνάρτηση παραγωγής προϊόντος Υ t = Y(K, L, A) Y t = [(1-α k )·K t ] α · [(1-α L )·A t ·L t ] 1-α 0
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
DREMEL: Interactive Analysis of Web-Scale Datasets
Μεταγράφημα παρουσίασης:

1 Θέματα Hash Join Κώστας Λίλλης Ελένη Γεώργα

2 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

3 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

4 Binary Hash Joins Η μία σχέση (build input) χωράει στη μνήμη  Διαβάζεται η build input και δημιουργείται ο πίνακας κατακερματισμού με βάση το πεδίο της συνένωσης  Διαβάζονται μία-μία οι εγγραφές της άλλης σχέσης (probe input) και παράγεται το αποτέλεσμα της συνένωσης Το build input δεν χωράει στη μνήμη  Διαβάζονται οι δύο σχέσεις και διαμερίζονται αναδρομικά με βάση μια συνάρτηση κατακερματισμού στο πεδίο της συνένωσης σε διαμερίσεις που χωράνε στη μνήμη  Πραγματοποιείται Binary Hash Join μεταξύ των αντίστοιχων διαμερίσεων των δύο σχέσεων

5 Διαμέριση (Partitioning) ………… ………… n-3 n-2 n-1 R X… 4 … 21 … 6 … 9 … 18 … 27 … S …X … … 9 … 18 … 4 … 6 … 21 … 27 … 4 … 6 … 9 … 18 … Hash Table … 27 … 4 … 6 … 9 … 18 … Partitions of R 27 … 9 … 6 … 4 … 18 … Partitions of S R X S

6 Binary Hash Joins Η πρώτη περίπτωση ονομάζεται in-memory hash join Η δεύτερη περίπτωση  Όταν δεν χρειάζονται πολλαπλά επίπεδα διαμέρισης ονομάζεται Grace hash join  Όταν χρειάζονται πολλαπλά επίπεδα διαμέρισης ονομάζεται recursive hash join Συνδυασμός των δύο περιπτώσεων ονομάζεται hybrid hash join  Κάποια buckets (που χωράνε στη μνήμη) γίνονται build και probe στη μνήμη, ενώ οι εγγραφές που ανήκουν στα υπόλοιπα buckets (που δεν χωράνε στη μνήμη) τοποθετούνται (spill) σε διαμερίσεις στο δίσκο  Οι spilled διαμερίσεις συνενώνονται με Grace ή recursive hash join

7 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

8 Binary Hash Joins with Grouping/Aggregation Ερωτήσεις που περιέχουν ένα join και ένα group by Παράδειγμα ερώτησης: συνολική τιμή όλων των παραγγελιών ομαδοποιημένες με βάση την πόλη. select c.City, sum(o.Value) from Customer c, Order o where c.C# = o.C# group by c.City; Customer(C#, City) Order(O#, C#, Value)

9 Traditional Execution Plan Βήματα εκτέλεσης  Διαμερίζονται οι σχέσεις Customer και Order με βάση το πεδίο της συνένωσης C#  Πραγματοποιείται η συνένωση των αντίστοιχων διαμερίσεων (partition) και προκύπτει το ενδιάμεσο αποτέλεσμα  Αν το ενδιάμεσο αποτέλεσμα δεν χωράει στη μνήμη διαμερίζεται με βάση το πεδίο City  Πραγματοποιείται η ομαδοποίηση και η συνάθροιση σε κάθε διαμέριση και παράγεται το τελικό αποτέλεσμα Agg OrderCustomer Ptn on C# Ptn on City C# City select c.City, sum(o.Value) from Customer c, Order o where c.C# = o.C# group by c.City;

10 Generalized Hash Teams Βήματα εκτέλεσης  Διαμερίζεται η σχέση Customer με βάση το πεδίο City και ταυτόχρονα δημιουργείται ένα bitmap για κάθε διαμέριση  Με βάση τα bitmaps πραγματοποιείται η έμμεση διαμέριση της σχέσης Order (ως προς το City)  Πραγματοποιείται η συνένωση των αντίστοιχων διαμερίσεων (partition) και προκύπτει το ενδιάμεσο αποτέλεσμα  Πραγματοποιείται η ομαδοποίηση και η συνάθροιση σε κάθε διαμέριση και παράγεται το τελικό αποτέλεσμα Bit- maps (BM) Order Customer Ptn on City Ptn on BM Agg C# City select c.City, sum(o.Value) from Customer c, Order o where c.C# = o.C# group by c.City;

11 Generalized Hash Teams Customer C#City 5PA 13M 3NYC 9B 17LA 10HH 4NYC 7LA 6B 25M 23PA 42HH Order O#C#Value B B B (4 mod 10) = 5 1+(9 mod 10) = 10 1+(25 mod 10) = 6 1+(4 mod 10) = 5 1+(3 mod 10) = 4

12 Generalized Hash Teams Customer1 C#City 5PA 13M 25M 23PA Order1 O#C#Value Aggr City CityValue PA33 M10 C# AggrCity

13 Generalized Hash Teams Customer2 C#City 9B 10HH 6B 42HH Order2 O#C#Value Aggr City CityValue B150 HH89 C# AggrCity

14 Generalized Hash Teams Customer3 C#City 3NYC 17LA 4NYC 7LA Order3 O#C#Value Aggr City CityValue NYC79 LA63 C# AggrCity

15 Generalized Hash Teams – False Drops Η τοποθέτηση μιας πλειάδας της σχέσης η οποία διαμερίζεται με βάση το bitmap, σε κάποια / ες επιπλέον διαμερίσεις ονομάζεται false drop Τα false drop δεν επηρεάζουν τη σωστή λειτουργία του αλγορίθμου αλλά έχουν αρνητικό αντίκτυπο στην απόδοση (Ι/Ο) Ο αριθμός των false drops εξαρτάται από το μήκος του bitmap και τη συνάρτηση κατακερματισμού

16 Generalized Hash Teams vs. Traditional Execution Plan Μειώνει το κόστος I/O που προκύπτει από την διαμέριση του ενδιάμεσου αποτελέσματος όταν αυτό δεν χωράει στην Κύρια Μνήμη Απαιτούν επιπρόσθετο χώρο στη μνήμη και CPU time για τα bitmaps Πιθανόν να αυξηθεί το κόστος I/O όταν υπάρχουν false drops Καταλληλότερα όταν υπάρχει συναρτησιακή εξάρτηση του πεδίου συνάθροισης από το πεδίο συνένωσης  Διαφορετικά το κόστος I/O αυξάνεται λόγω της τοποθέτησης πλειάδων σε πολλαπλές διαμερίσεις (partition overlapping)

17 Partition Nested Loops Βήματα εκτέλεσης 1. Η σχέση Customer διαμερίζεται με βάση το πεδίο City 2. Διαβάζεται η σχέση Order, προβάλλονται τα σχετικά πεδία, εφαρμόζονται (αν υπάρχουν) τα predicates και η τροποποιημένη σχέση Order γράφεται στο δίσκο 3. Διαβάζεται η πρώτη διαμέριση της σχέσης Customer και δημιουργείται ένα hash table στη μνήμη με βάση το πεδίο C#. Διαβάζεται η τροποποιημένη σχέση Order (ανά block) και βρίσκονται οι πλειάδες της που αντιστοιχούν στης πλειάδες της διαμέρισης της σχέσης Customer. Ταυτόχρονα εκτελείται η συνάθροιση 4. Επαναλαμβάνεται το βήμα 3 για όλες τις υπόλοιπες διαμερίσεις της σχέσης Customer  Τα βήματα 2 και 3 για την πρώτη διαμέριση της σχέσης Customer μπορούν να εκτελεστούν ταυτόχρονα ώστε μειωθεί το κόστος I/O  Αν δεν κερδίζουμε κάτι από το βήμα 2 αυτό μπορεί να παραλειφθεί select c.City, sum(o.Value) from Customer c, Order o where c.C# = o.C# group by c.City;

18 Partition Nested Loops vs. Generalized Hash Teams Υψηλό κόστος αν η σχέση Customer είναι μεγάλη (που συνεπάγεται περισσότερες διαμερίσεις άρα και περισσότερες αναγνώσεις της σχέσης Order) Καλύτερη απόδοση αν αναμένεται να υπάρχουν πολλά false drops Χρειάζονται λιγότερη μνήμη στη φάση της διαμέρισης (δεν υπάρχουν bitmaps)

19 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

20 Traditional Multi-Way Hash Join R A A S T R S A A T A A Result Βήματα εκτέλεσης  Διαμερίζονται οι σχέσεις R, S με βάση το πεδίο A  Συνενώνονται οι αντίστοιχες διαμερίσεις και δημιουργεί- ται το ενδιάμεσο αποτέλεσμα  Διαμερίζονται το ενδιάμεσο αποτέλεσμα και η σχέση Τ  Συνενώνονται οι αντίστοιχες διαμερίσεις και παράγεται το τελικό αποτέλεσμα R.A S.A T.A

21 Multi-Way Hash Teams Join Βήματα εκτέλεσης  Διαμερίζονται σε ένα πέρασμα οι σχέσεις R, S, T  Συνενώνονται οι αντίστοιχες διαμερίσεις (όπως φαίνεται στο σχήμα) και παράγεται το τελικό αποτέλεσμα. R A A S T R S A A T Result A A S.A T.A R.A

22 Multi-Way Hash Teams Join vs. Traditional Multi-Way Hash Join Μείωση του κόστους I/O διότι διαμερίζονται μόνο οι σχέσεις που συνενώνονται και όχι τα ενδιάμεσα αποτελέσματα Μπορεί να γίνει μόνο αν όλες οι συνενώσεις γίνονται με βάση το ίδιο πεδίο Λύση  Generalized Hash Team Join

23 Multi-Way Generalized Hash Teams Join Βήματα εκτέλεσης  Διαμερίζεται η σχέση R με βάση το πεδίο Α  Διαμερίζεται η σχέση S με βάση το πεδίο Α και ταυτόχρονα δημιουργούνται τα bitmaps με βάση το B  Διαμερίζεται η σχέση T με βάση τα bitmaps.  Συνενώνονται οι αντίστοιχες διαμερίσεις (όπως φαίνεται στο σχήμα) και παράγεται το τελικό αποτέλεσμα. R Β A S T R S A A T Result B BS.A BT.B R.A Bitmaps on B(BT.B)

24 Multi-Way Generalized Hash Teams Join with Grouping/Aggregation Παράδειγμα ερώτησης με διπλή συνένωση, group by και aggregation  Συνολικό κόστος όλων των παραγγελιών ομαδοποιημένες με βάση την πόλη select c.City, sum(l.Price) from Customer c, Order o, Lineitem l where c.C# = o.C# and l.O# = o.O# group by c.City; Customer(C#, City) Order(O#, C#, Value) Lineitem(l#, O#, Price)

25 Multi-Way Generalized Hash Teams Join with Grouping/Aggregation Τρόπος εκτέλεσης της ερώτησης (Generalized Hash Team Join)  Διαμερίζεται η σχέση Customer με βάση το πεδίο City και ταυτόχρονα δημιουργούνται τα bitmaps με βάση το πεδίο C#  Διαμερίζεται η σχέση Order με βάση τα bitmaps που δημιούργησε η Customer και ταυτόχρονα δημιουργούνται τα bitmaps με βάση το πεδίο Ο#  Διαμερίζεται η σχέση Lineitem με βάση τα bitmaps που δημιούργησε η Order  Πραγματοποιείται η συνένωση των αντίστοιχων διαμερίσεων select c.City, sum(l.Price) from Customer c, Order o, Lineitem l where c.C# = o.C# and l.O# = o.O# group by c.City;

26 Multi-Way Generalized Hash Teams Join with Grouping/Aggregation Στο παράδειγμά μας οι συνενώσεις των διαμερίσεων μπορούν να εκτελεστούν με δύο διαφορετικές διατάξεις. Η απόφαση λαμβάνεται με βάση το κόστος εκτέλεσης

27 Multi-Way Generalized Hash Teams Join with Grouping/Aggregation Το κόστος μνήμης αυξάνεται λόγω της διατήρησης δύο συνόλων bitmaps (με βάση το C# και με βάση το O#)  Το κόστος αυτό μπορεί να μειωθεί διαγράφοντας τα bitmaps με βάση το C# μετά τη διαμέριση της σχέσης Order Στο παράδειγμα υπάρχουν οι συναρτησιακές εξαρτήσεις Ο#  C#  City άρα το generalized hash team join είναι η κατάλληλη τεχνική (no overlapping partitions)

28 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

29 Implementation Details – Fine-Tuning the Indirect Partitioning Phase R …A …4 …5 …6 … … Bitmaps used collision B1B2B3 used = B1|B2| … | Bn collision[k]= 1 : if exists i  j  {1,…,n} s.t. Bi[k]==Bj[k]==1 0 : otherwise

30 Teaming up the Hash Join and the Aggregation – Build Phase 5 PA M

31 Teaming up the Hash Join and the Aggregation – Probe Phase 5 PA M

32 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

33 F. D. Analysis CO C1 C3 C2 O1 O2 O B1 B3 B2 i i i j j j h( ) = h( ) = i h( ) = h( ) = j select c.City, sum(o.Value) from Customer c, Order o where c.C# = o.C# group by c.City;

34 False Drop Analysis - Binary Hash Joins with Grouping/Aggregation n : αριθμός διαμερίσεων b : μήκος κάθε bitmap της σχέσης Customer c : πλήθος customers o : πλήθος orders η πιθανότητα ένας customer να θέσει ένα bit των bitmap η πιθανότητα ένας customer να μη θέσει το συγκεκριμένο bit των bitmap η πιθανότητα μόνο ένας customer να έχει θέσει το συγκεκριμένο bit των bitmap η πιθανότητα παραπάνω από ένας customer να έχει θέσει το συγκεκριμένο bit των bitmap  πιθανότητα για ένα false drop

35 False Drop Analysis - Binary Hash Joins with Grouping/Aggregation ο συνολικός αριθμός των false drops για όλα τα orders σε όλες τις n -1 διαμερίσεις Υποθέσεις  Η συνάρτηση κατακερματισμού θέτει ομοιόμορφα τα bit σε κάθε bitmap (διαφορετικά ο αριθμός των false drops θα ήταν πολύ μεγάλος)  Οι customers κατανέμονται ομοιόμορφα στις διαμερίσεις (διαφορετικά ο αριθμός των false drops θα μειώνονταν) Τύπος με μικρότερο υπολογιστικό κόστος η πιθανότητα δύο customers να θέσουν το ίδιο bit

36 False Drop Analysis – Multi-way Hash Joins Για τη διαμέριση της σχέσης Order ισχύει η προηγούμενη ανάλυση Κατά τη διαμέριση της σχέσης Lineitem εμφανίζονται false drops με δύο τρόπους: 1. Orders που ανήκουν σε διαφορετικές διαμερίσεις θέτουν το ίδιο bit στους bitmaps. 2. Τα false drops που εμφανίζονται κατά τη διαμέριση της σχέσης Order προκαλούν false drops κατά τη διαμέριση της σχέσης Lineitem (false drop propagation) select c.City, sum(l.Price) from Customer c, Order o, Lineitem l where c.C# = o.C# and l.O# = o.O# group by c.City;

37 F. D. Analysis OL O1 O2 O B1 B3 B2 i i j j h( ) = i h( ) = j select c.City, sum(l.Price) from Customer c, Order o, Lineitem l where c.C# = o.C# and l.O# = o.O# group by c.City; L1 L2 L3

38 False Drop Analysis – Multi-way Hash Joins l : πλήθος lineitems bο : μήκος κάθε bitmap της σχέσης Order fο : εκτίμηση του αριθμού των false drops κατά τη διαμέριση της σχέσης Order ο αριθμός των false drop για την πρώτη περίπτωση ο αριθμός των false drop για την δεύτερη περίπτωση select c.City, sum(l.Price) from Customer c, Order o, Lineitem l where c.C# = o.C# and l.O# = o.O# group by c.City;

39 Θεματολόγιο Binary Hash Joins Binary Hash Joins with Aggregation Multi-Way Hash Joins Implementation Details False Drop Analysis XJoin

40 Xjoin - Γενικά Απευθύνεται σε ερωτήσεις πάνω σε ευρέως κατανεμημένες πηγές δεδομένων Τα δεδομένα (σχέσεις - πλειάδες) προέρχονται από απομακρυσμένες πηγές Αυτό επιφέρει καθυστέρηση στην παραγωγή αποτελέσματος λόγω  Καθυστέρησης στην άφιξη των πρώτων δεδομένων (πλειάδων)  Αργού ρυθμού άφιξης δεδομένων  Bursty άφιξης δεδομένων

41 Xjoin - Γενικά Επιτυγχάνει καλύτερη αλληλεπιδραστική απόδοση παράγοντας αποτελέσματα «αυξητικά» Επιτρέπει την συνεχή εκτέλεση της ερώτησης ακόμα και όταν τα δεδομένα καθυστερούν από μία ή και της δύο πηγές. Πως;  Επεξεργασία στο background δεδομένων που έχουν ληφθεί προηγουμένως, ενώ δεν φθάνουν δεδομένα από τις πηγές

42 Xjoin - Θέματα Διαχείριση ροής δεδομένων μεταξύ μνήμης και σκληρού δίσκου Έλεγχος της επεξεργασίας που πραγματοποιείται στο background Παραγωγή όλων των αποτελεσμάτων (πλήρη απάντηση στην ερώτηση) Απαλοιφή διπλότυπων από το αποτέλεσμα

43 Xjoin - Λειτουργία Κάθε είσοδος (σχέση) της ερώτησης διαμερίζεται σε έναν αριθμό από διαμερίσεις με βάση μια συνάρτηση κατακερματισμού Κάθε διαμέριση P iA μίας σχέσης A αποτελείται από δύο κομμάτια  Ένα κομμάτι που βρίσκεται στη μνήμη MP iA  Ένα κομμάτι που βρίσκεται στο δίσκο DP iA P iA = MP iA  DP iA και MP iA  DP iA =  Κάθε πλειάδα που φθάνει τοποθετείται στην αντίστοιχη διαμέριση αν υπάρχει χώρος στη μνήμη διαφορετικά κάποια διαμέριση μεταφέρεται στο δίσκο

44 D I S K Tuple B hash(Tuple B) = n SOURCE-B Memory-resident partitions of source B... k1 n flush Disk-resident partitions of source B... Disk-resident partitions of source A Memory-resident partitions of source A SOURCE-A M E M O R Y... n 1n1kn Tuple A hash(Tuple A) = 1

45 Xjoin - Λειτουργία Το XJoin αποτελείται από τρία στάδια  Το πρώτο στάδιο συνενώνει πλειάδες που βρίσκονται στη μνήμη Μπλοκάρει όταν δεν φθάνουν δεδομένα από καμία πηγή Τερματίζει όταν έχει λάβει όλες τις πλειάδες από τις δύο πηγές  Το δεύτερο στάδιο συνενώνει πλειάδες της μίας σχέσης που βρίσκονται στο δίσκο με πλειάδες της άλλης σχέσης που βρίσκονται στη μνήμη Ενεργοποιείται όταν μπλοκάρει το πρώτο στάδιο Σταματάει όταν επανενεργοποιείται το πρώτο στάδιο  Το τρίτο στάδιο παράγει αποτελέσματα τα οποία δεν παράχθηκαν από τα υπόλοιπα στάδια

46 XJoin – Στάδιο 1 hash(record B) = j Partitions of source B ii M E M O R Y j Partitions of source A j SOURCE-B Tuple B SOURCE-A Tuple A hash(record A) = i insert probe Output

47 XJoin – Στάδιο 2 Partitions of source BPartitions of source A M E M O R Y i i i D I S K i Output Partitions of source BPartitions of source A..... DP iA MP iB probe

48 XJoin - Στάδιο 3 Το πρώτο στάδιο δεν συνενώνει πλειάδες που δεν βρίσκονται ταυτόχρονα στη μνήμη Το δεύτερο στάδιο δεν συνενώνει δύο πλειάδες αν η μία δεν βρισκόταν στη μνήμη όταν η άλλη μεταφέρθηκε από το δίσκο στη μνήμη Το τρίτο στάδιο συνενώνει όλες τις διαμερίσεις (που βρίσκονται στη μνήμη ή στο δίσκο) των δύο σχέσεων

49 Απαλοιφή διπλοτύπων από το πρώτο στάδιο Tuple X ATSDTS Για κάθε πλειάδα συντηρούνται timestamps ATS : ο χρόνος όταν η πλειάδα έφθασε από την πηγή DTS : ο χρόνος όταν η πλειάδα μεταφέρθηκε στο δίσκο Tuple X Παράδειγμα

50 Ανίχνευση πλειάδων που συνενώθηκαν στο πρώτο στάδιο Tuple A Tuple B Tuples joined in the first stage DTSATS Overlapping Tuple A Tuple B Tuples not joined in the first stage DTSATS Non-Overlapping

51 Απαλοιφή διπλοτύπων από το δεύτερο στάδιο Για κάθε διαμέριση διατηρείται μια συνδεδεμένη λίστα με στοιχεία της μορφής {DTSlast, ProbeTS}  DTSlast : το DTS της τελευταίας πλειάδας του κομματιού τις διαμέρισης που βρίσκεται στο δίσκο, το οποίο επεξεργαστικέ από το δεύτερο στάδιο  ProbeTS : ο χρόνος εκτέλεσης του δευτέρου σταδίου

52 Ανίχνευση πλειάδων που συνενώθηκαν στο δεύτερο στάδιο Tuple A DTS ATS ProbeTS DTS last Tuple B DTS ATS Overlap History list for the corresponding partitions

53 Έλεγχος εκτέλεσης του δευτέρου σταδίου Το κόστος από την εκτέλεση του δευτέρου σταδίου κρύβεται μόνο όταν και οι δύο πηγές (είσοδοι) καθυστερούν Προτείνεται μηχανισμός για τον περιορισμό του δεύτερου σταδίου στην επεξεργασία μόνο των διαμερίσεων που αναμένεται να παράγουν σημαντικό αποτέλεσμα (μεγάλο αριθμό πλειάδων) Κατώφλι ενεργοποίησης  ποσοστό του συνολικού αριθμού πλειάδων που αναμένεται να παραχθούν από μία διαμέριση ως αποτέλεσμα της συνένωσης της Παράδειγμα  Μια διαμέριση αναμένεται να παράγει 1000 πλειάδες  Κατώφλι 0.01 επιτρέπει το δεύτερο στάδιο να εκτελεστεί αν αναμένεται να παράγει 10 ή παραπάνω πλειάδες Δυναμική ρύθμιση του κατωφλίου: aggressive  conservative

54 References G. Graefe, R. Bunker, S. Cooper: Hash Joins and Hash Teams in Microsoft SQL Server. VLDB pp A. Kemper, D. Kossmann, C. Wiesner. Generalized hash teams for join and group-by. VLDB pp T. Urhan, M. J. Franklin. XJoin: A ReactivelyScheduled Pipelined Join Operator. IEEE Data Engineering Bulletin, 23(2):27--33, June 2000

55 Ερωτήσεις