Συστήματα Διαχείρισης Βάσεων Δεδομένων

Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους

Διοικητική Λογιστική

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 8η: Producer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 13η: Multi-Object Auctions Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ψηφιακή Οικονομία. Διάλεξη 11η: Markets and Strategic Interaction in Networks Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 10η: Basics of Game Theory part 2 Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

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

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μάρκετινγκ Αγροτικών Προϊόντων

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Αρχεία και Βάσεις Δεδομένων

Διοικητική Λογιστική

Ψηφιακή Επεξεργασία Εικόνων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Συστήματα Διαχείρισης Βάσεων Δεδομένων

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή σε μεθόδους Monte Carlo Ενότητα 2: Ολοκλήρωση Monte Carlo, γεννήτριες τυχαίων αριθμών

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

Δομές Δεδομένων Ενότητα 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Μηχανολογικό Σχέδιο Ι

Τεχνικό Σχέδιο - CAD

Κβαντική Επεξεργασία Πληροφορίας

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

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

Τεχνικό Σχέδιο - CAD

Δομές Δεδομένων Ενότητα 3

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

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

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

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μάρκετινγκ Αγροτικών Προϊόντων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Μάρκετινγκ Αγροτικών Προϊόντων

Διδακτική Πληροφορικής

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

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή σε μεθόδους Monte Carlo Ενότητα 3: Δειγματοληπτικές μέθοδοι

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Οικονομική Γεωργικών Εκμεταλλεύσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Κβαντική Επεξεργασία Πληροφορίας

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Διοικητική Λογιστική

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Τεχνολογία Πολιτισμικού Λογισμικού

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

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

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Εισαγωγή στους Υπολογιστές

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διδακτική Πληροφορικής

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

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

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

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

Κοινωνία & Υγεία Υγεία Πρόληψη Προαγωγή υγείας: Βαθμίδες πρόληψης

Μηχανική Μάθηση Hypothesis Testing

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Φροντιστήριο 5: Tutorial on External Sorting Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

TUTORIAL ON EXTERNAL SORTING 1

External Sorting External sorting has two main components: Computation involved in sorting records in buffers in main memory I/O necessary to move records between mass store and main memory 2

General Merge Sort Algorithm M = number of main memory page buffers N = number of pages in file to be sorted Typical algorithm has two phases: Partial sort phase: sort M pages at a time; create N/M sorted runs on mass store, cost = 2N Original file Partially sorted file run Example: M = 2, N = 7 3

General Merge Sort Algorithm Merge Phase: merge all runs into a single run using M-1 buffers for input and 1 output buffer Merge step: divide runs into groups of size M-1 and merge each group into a run; cost = 2N each step reduces number of runs by a factor of M-1 M pages Buffer 4

General Merge Sort Algorithm Cost of merge phase: (N/M)/(M-1) k runs after k merge steps log M-1 (N/M) merge steps needed to merge an initial set of N/M sorted runs cost = 2N Log M-1 (N/M) 2N(log M-1 N -1) Total cost= cost of partial sort phase + cost of merge phase 2N log M-1 N 5

Merge Sort: Phase 1 Iteratively create large sorted groups and merge them Phase 1: Create N/(M 1) sorted groups of size (M 1) blocks each B = 2 objects; M = 3 blocks; N = 8 blocks N/(M 1) = 4 1 2 4 2 9 1 5 3 8 0 3 2 8 0 5 2 1 2 4 2 Main Memory 1 2 2 4 6

Merge Sort: Phase 1 B = 2; M = 3; N = 8 N/(M 1) = 4 1 2 4 2 9 1 5 3 8 0 3 2 8 0 5 2 9 1 5 3 1 2 2 4 1 3 5 9 7

End of Phase 1 B = 2; M = 3; N = 8 N/(M 1) = 4 1 2 4 2 9 1 5 3 8 0 3 2 8 0 5 2 One Scan 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 N/(M-1) = 4 sorted groups of size (M-1) = 2 blocks each 8

Second Phase: Merging Runs First Pass Merge (M-1) sorted groups into one sorted group Iterate until all groups merged 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 1 2 1 3 N = 8 M-1 = 2 9

Second Phase: Merging Runs First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 _ 2 _ 3 1 1 10

Second Phase: Merging Runs First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 _ 2 _ 3 1 1 11

Second Phase: Merging Runs First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 _ 3 2 1 1 12

Second Phase: Merging Runs First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 2 4 _ 3 2 1 1 13

Second Phase: Merging Runs First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 _ 4 _ 3 2 2 1 1 14

Second Phase: Merging Runs First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 _ 4 _ 3 1 1 2 2 15

Second Phase: Merging Runs End of First Pass 1 2 2 4 1 3 5 9 0 2 3 8 0 2 5 8 1 1 2 2 3 4 5 9 0 0 2 2 3 5 8 8 16

Second Phase: Merging Runs Second Pass 1 1 2 2 3 4 5 9 0 0 2 2 3 5 8 8 1 1 0 0 17

Second Phase: Merging Runs End of Second Pass 1 1 2 2 3 4 5 9 0 0 2 2 3 5 8 8 0 0 1 1 2 2 2 2 3 3 4 5 5 8 8 9 18

General Merging Step (M 1) sorted groups One Block Merge 1 scan Sorted 19

Sort-Merge: Second Example Assume that only three tuples fit in a block and that main memory holds 4 blocks. Suppose that we sort this relation using sort-merge (instead of doing it in main memory). Show the runs created on each pass of the sort-merge algorithm, when applied to sort the following tuples on the first attribute: i.e. Block = 3 Objects (tuples) M = 4 blocks N = 4 blocks t 1 kangaroo 17 t 2 wallaby 21 t 3 emu 1 t 4 wombat 13 t 5 platypus 3 t 6 lion 8 t 7 warthog 4 t 8 zebra 11 t 9 meerkat 6 t 10 hyena 9 t 11 hornbill 2 t 12 baboon 12 20

Sort-Merge Second Example: Initial Sorted Runs t 1 kangaroo 17 t 2 wallaby 21 t 3 emu 1 r 11 t 3 emu 1 t 1 kangaroo 17 t 2 wallaby 21 t 4 wombat 13 t 5 platypus 3 t 6 lion 8 t 7 warthog 4 t 8 zebra 11 t 9 meerkat 6 t 10 hyena 9 t 11 hornbill 2 t 12 baboon 12 Let r ij be the jth run computed on the ith pass r 12 r 13 r 14 t 6 lion 8 t 5 platypus 3 t 4 wombat 13 t 9 meerkat 6 t 7 warthog 4 t 8 zebra 11 t 12 baboon 12 t 11 hornbill 2 t 10 hyena 9 21

Sort-Merge Second Example: Merging r 11 r 12 r 13 t 3 emu 1 t 1 kangaroo 17 t 2 wallaby 21 t 6 lion 8 t 5 platypus 3 t 4 wombat 13 t 9 meerkat 6 t 7 warthog 4 t 8 zebra 11 First merge pass Memory holds four blocks Load three blocks of data and reserve one as output buffer Fill output buffer by selecting next tuple from across all input blocks Next: write output buffer to disk output buffer emu 1 kangaroo 17 lion 8 22

Sort-Merge Second Example: Merging r 11 t 3 emu 1 t 1 kangaroo 17 t 2 wallaby 21 emu 1 kangaroo 17 lion 8 r 12 t 6 lion 8 t 5 platypus 3 t 4 wombat 13 r 13 t 9 meerkat 6 t 7 warthog 4 t 8 zebra 11 output buffer meerkat 6 platypus 3 wallaby 21 23

Sort-Merge Second Example: Merging r 11 t 3 emu 1 t 1 kangaroo 17 t 2 wallaby 21 emu 1 kangaroo 17 lion 8 r 12 t 6 lion 8 t 5 platypus 3 t 4 wombat 13 meerkat 6 platypus 3 wallaby 21 r 13 t 9 meerkat 6 t 7 warthog 4 t 8 zebra 11 output buffer warthog 4 wombat 13 zebra 11 24

Sort-Merge Second Example: Merging End of first merge pass Disk holds two runs: First is the result of merging three runs Second is the remaining, original 4 th run Next: second merge pass r 21 emu 1 kangaroo 17 lion 8 meerkat 6 platypus 3 wallaby 21 warthog 4 wombat 13 zebra 11 r 22 t 12 baboon 12 t 11 hornbill 2 t 10 hyena 9 25

Sort-Merge Second Example: Merging r 21 t 3 emu 1 r 21 emu 1 t 1 kangaroo 17 kangaroo 17 r 22 t 2 lion 8 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 lion 8 meerkat 6 platypus 3 wallaby 21 warthog 4 wombat 13 zebra 11 output buffer r 22 t 12 baboon 12 t 11 hornbill 2 t 10 hyena 9 26

Sort-Merge Second Example: Merging r 21 r 22 t 3 emu 1 t 1 kangaroo 17 t 2 lion 8 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 output buffer baboon 12 emu 1 hornbill 2 27

Sort-Merge Second Example: Merging r 21 r 22 output buffer t 3 emu 1 t 1 kangaroo 17 t 2 lion 8 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 hyena 9 kangaroo 17 lion 8 baboon 12 emu 1 hornbill 2 First output buffer written to disk Finished processing loaded runs Discard first block of run r 21 Load next block of run r 21 28

Sort-Merge Second Example: Merging r 21 r 22 t 3 meerkat 6 t 1 platypus 3 t 2 wallaby 21 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 baboon 12 emu 1 hornbill 2 hyena 9 kangaroo 17 lion 8 output buffer 29

Sort-Merge Second Example: Merging r 21 r 22 t 3 meerkat 6 t 1 platypus 3 t 2 wallaby 21 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 baboon 12 emu 1 hornbill 2 hyena 9 kangaroo 17 lion 8 output buffer meerkat 6 platypus 3 wallaby 21 30

Sort-Merge Second Example: Merging r 21 r 22 t 3 warthog 4 t 1 wombat 13 t 2 zebra 11 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 baboon 12 emu 1 hornbill 2 hyena 9 kangaroo 17 lion 8 meerkat 6 platypus 3 wallaby 21 output buffer 31

Sort-Merge Second Example: Merging r 21 t 3 warthog 4 r 31 baboon 12 t 1 wombat 13 emu 1 r 22 t 2 zebra 11 t 6 baboon 12 t 5 hornbill 2 t 4 hyena 9 hornbill 2 hyena 9 kangaroo 17 lion 8 meerkat 6 platypus 3 wallaby 21 warthog 4 output buffer warthog 4 wombat 13 zebra 11 wombat 13 zebra 11 End! 32

External Merge Sort: Third Example Sort N=10000 records Enough memory for 500 records Block size is b=100 records, i.e. B=N/b=100 and M=5 (buffers) t IS = time to internally sort 1 memory load t IM = time to internally merge 1 block load 33

Run Generation 10,000 MEMORY 500 5 blocks 100 blocks DISK Input 5 blocks Sort Output as a run Do 20 times M t IS M (B/M)*(2M+ t IS )=200+20 t IS 34

Run Merging Merge Pass Pairwise merge the 20 runs into 10 In a merge pass all runs (except possibly one) are pairwise merged Perform 4 more merge passes, reducing the number of runs to 1 35

Merge 20 Runs R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 T1 T2 T3 T4 T5 U1 U2 U3 V1 V2 W1 36

Merge R1 and R2 Output Input 0 Input 1 DISK Fill I0 (Input 0) from R1 and I1 from R2 Merge from I0 and I1 to output buffer Write whenever output buffer full Read whenever input buffer empty 37

Time To Merge R1 and R2 Each is M=5 blocks long Input time = 2*M = 10 Write/output time = 2*M = 10 Merge time = 2*M*t IM Total time = 20 + 2*M*t IM = 20 + 10t IM 38

Time For Pass 1 (R S) Time to merge one pair of runs Time to merge all 10 pairs of runs = 20 + 10t IM = 200 + 100t IM 39

Time To Merge S1 and S2 Each is 2*M=10 blocks long Input time = 2*(2*M) = 20 Write/output time = 2*(2*M) = 20 Merge time = 2*(2*M)*t IM Total time = 40 + 20t IM 40

Time For Pass 2 (S T) Time to merge one pair of runs Time to merge all 5 pairs of runs = 40 + 20t IM = 200 + 100t IM 41

Time For One Merge Pass Time to input all blocks = B = 100 Time to output all blocks = B = 100 Time to merge all blocks = B* t IM = 100t IM Total time for a merge pass = 200 + 100t IM 42

Total Run-Merging Time (time for one merge pass) * (number of passes) = (time for one merge pass) * log 2 number_of_initial_runs log 2 20 = (200 + 100t IM ) * = (200 + 100t IM ) * 5 Neglecting t IM, we get 200 * 5 = 1000 blocks I/O, 43

Total time for External Sort Run_generation_time + run_merging_time = (200+20t IS ) + (200 + 100t IM ) * 5 = 1200 + 20t IS + 500t IM Neglecting t IS, t IM we get 1200 blocks I/O 44

Factors In Overall Run Time Run generation 200 + 20t IS Internal sort time Input and output time Run merging (200 + 100t IM ) * Internal merge time Input and output time Number of initial runs log 2 20 Merge order (number of merge passes is determined by number of runs and merge order) 45

Improve Run Generation Overlap input,output, and internal sorting DISK MEMORY DISK 46

Improve Run Generation Generate runs whose length (on average) exceeds memory size Equivalent to reducing number of runs generated 47

Improve Run Merging Overlap input,output, and internal merging DISK MEMORY DISK 48

Improve Run Merging Reduce number of merge passes Use higher-order merge Number of passes = log k number_of_initial_runs where k is the merge order 49

Merge 20 Runs Using 5-Way Merging R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 S1 S2 S3 S4 T1 Number of passes = 2 50

I/O Time Per Merge Pass Number of input buffers needed is linear in merge order k Since memory size is fixed, block size decreases as k increases So, number of blocks increases So, number of seek and latency delays per pass increases 51

I/O Time Per Merge Pass I/O time per pass merge order k 52

Total I/O Time To Merge Runs (I/O time for one merge pass) * log k number_of_initial_runs Total I/O time to merge runs merge order k 53

Internal Merge Time O R1 R2 R3 R4 R5 R6 Naïve way k 1 compares to determine next record to move to the output buffer Time to merge n records is c(k 1)n, where c is a constant Merge time per pass is c(k 1)n Total merge time is c(k 1)nlog k r = cn(k/log 2 k) log 2 r 54

Merge Time Using A Tournament Tree O R1 R2 R3 R4 R5 R6 Time to merge n records is dnlog 2 k, where d is a constant Merge time per pass is dnlog 2 k Total merge time is (dnlog 2 k) log k r = dnlog 2 r 55

Τέλος Ενότητας

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

Σημειώματα

Σημειώματα

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί..

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Δημήτρης Πλεξουσάκης. «Συστήματα Διαχείρισης Βάσεων Δεδομένων. Φροντιστήριο 5: Tutorial on External Sorting». Έκδοση: 1.0. Ηράκλειο/Ρέθυμνο 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://www.csd.uoc.gr/~hy460/