39
EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA Διδάσκοντες: Μακρής Χρήστος Βοηθητικό υλικό: Αντωνέλης Παναγιώτης e-mail: [email protected] Διδασκαλία: Πέμπτη: 17:00-19:00 Π200

EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

Embed Size (px)

DESCRIPTION

EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA. Διδάσκοντες : Μακρής Χρήστος Βοηθητικό υλικό : Αντωνέλης Παναγιώτης e -mail : [email protected] Διδασκαλία : Πέμπτη : 17 :00-1 9 :00 Π200. ΕΙΣΑΓΩΓΗ. Μεγάλες εφαρμογές με μεγάλο όγκο δεδομένων - PowerPoint PPT Presentation

Citation preview

Page 1: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING

WITH MASSIVE DATA

Διδάσκοντες: Μακρής Χρήστος

Βοηθητικό υλικό: Αντωνέλης Παναγιώτης

e-mail: [email protected]

Διδασκαλία: Πέμπτη: 17:00-19:00 Π200

Page 2: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΕΙΣΑΓΩΓΗ

Μεγάλες εφαρμογές με μεγάλο όγκο δεδομένων Δεν χωράνε στην κύρια μνήμη (RAM) Αλγόριθμοι για επεξεργασία δεδομένων στην

εξωτερική μνήμη (ΕΜ) Δομές δεδομένων, επιστημονικός υπολογισμός,

διαχείριση βάσεων δεδομένων, ανάκτηση πληροφορίας, υπολογιστική πολυπλοκότητα κτλ.

Page 3: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΕΙΣΑΓΩΓΗ

Είδη προβλημάτων– Batch προβλήματα

Δεν γίνεται προεπεξεργασία στα δεδομένα Επεξεργασία σε ένα ή περισσότερα περάσματα στην

κύρια μνήμη

– Online προβλήματα Ερωτήσεις πάνω στα δεδομένα Διαχωρισμός σε μικρές ομάδες Σε κάθε ερώτηση, μόνο κάποιες ομάδες χρειάζεται να

επεξεργασθούν

Page 4: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

PDM ΜΟΝΤΕΛΟ

Για τον έλεγχο της αξιοπιστίας και της απόδοσης των ΕΜ αλγορίθμων χρειάζεται ένα αντίστοιχο μοντέλο

Η ανάγνωση / εγγραφή σε μαγνητικούς δίσκους απαιτεί μια σειρά ενεργειών όπως εύρεση του track, περιστροφή του δίσκου κτλ. Επιπλέον, τα δεδομένα δεν μεταφέρονται ένα-ένα αλλά σε blocks με μέγεθος που ποικίλει, αλλά συνήθως είναι γύρω στα 8Κb.

Το PDM μοντέλο θα πρέπει να εξομοιώνει όλες αυτές τις συνθήκες και παραμέτρους

Page 5: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

PDM MONTEΛΟ

Παράμετροι:– ΝΝ. μέγεθος των δεδομένων (σε αντικείμενα)– ΜΜ. μέγεθος της κύριας μνήμης (σε αντικείμενα)– ΒΒ. μέγεθος του block μεταφοράς (σε αντικείμενα)– D.D. αριθμός των ανεξάρτητων δίσκων– P.P. αριθμός CPU’s

Ισχύει: Μ < Ν και 1 ≤ DB ≤ M/2. Σε online προβλήματα έχουμε άλλες δύο

παραμέτρους:– Q. Q. αριθμός ερωτήσεων – Ζ. Ζ. μέγεθος της απάντησης σε μια ερώτηση (σε αντικείμενα)

Page 6: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

PDM ΜΟΝΤΕΛΟ

Συνήθως είναι βολικό να αναφερόμαστε σε κάποιες από αυτές τις παραμέτρους σε μονάδες δεδομένων block, οπότε έχουμε

– n = N/Bn = N/B– m = M/Bm = M/B– q = Q/Bq = Q/B– z = Z/Bz = Z/B

Αν θεωρήσουμε ότι τα δεδομένα είναι ομοιόμορφα κατανεμημένα σε λωρίδες (stripes) στους δίσκους, τότε Ν δεδομένα μπορούν να αναγνωσθούν ή να εγγραφούν σε Ο(n/D) I/Os που είναι βέλτιστο

Τρόποι μέτρησης της απόδοσης– Αριθμός Ι/Οs– Χώρος του δίσκου που χρησιμοποιείται– Χρόνος υπολογισμού που απαιτείται

Page 7: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΒΑΣΙΚΕΣ I/O ΛΕΙΤΟΥΡΓΙΕΣ

Βασικές πράξεις– ScanScan N αντικειμένων– ΤαξινόμησηΤαξινόμηση ενός αρχείο Ν αντικειμένων– ΑναζήτησηΑναζήτηση online ανάμεσα σε Ν αντικείμενα– Έξοδος Έξοδος των Ζ απαντήσεων μιας ερώτησης με

συγκεκριμένη κατανοητή μορφή

Page 8: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΟΡΙΑ

Page 9: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

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

Το κλειδί για την ανάπτυξη αποδοτικών ΕΜ αλγορίθμων είναι ο σχεδιασμός τους με τέτοιο τρόπο ώστε να προσπελαύνουν τα δεδομένα με μεγάλο βαθμό τοπικότητας

Το βέλτιστο είναι και τα B αντικείμενα ενός block που προσπελαύνονται σε ένα Ι/Ο να είναι χρήσιμα και απαραίτητα στον αγλόριθμο

Page 10: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΤΟΠΙΚΟΤΗΤΑ - ΑΠΛΟΣ ΔΙΣΚΟΣ

Ας θεωρήσουμε το πρόβλημα της αναζήτησης. Στην κύρια μνήμη απαιτεί Ο(NlogN) CPU χρόνο

Αν δεν υπήρχε η τοπικότητα, στους ΕΜ θα απαιτούσε Ο(ΝlogN) I/Os, αλλά με την εκμετάλλευση της τοπικότητα επιδιώκουμε να πετύχουμε Ο(nlogmn) Ι/Οs.

Για τα online προβλήματα θέλουμε Ο(logBN+z)

Page 11: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

DISK STRIPPING

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

Χρήση disk stripping

Page 12: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

DISK STRIPPING

Οι D δίσκοι λειτουργούν ως ένας ενιαίος λογικός δίσκος με μέγεθος block DB

Ένας αλγόριθμος σχεδιασμένος για απλό δίσκο με block DB μπορεί να μετατραπεί γρήγορα σε αλγόριθμο για D δίσκους με block B με χρήση disk stripping

Η παραπάνω διαδικασία δίνει βέλτιστους αλγόριθμους για όλα τα κύρια προβλήματα που αναφέρθηκαν εκτός από την ταξινόμηση

Αν όμως απαιτήσουμε από τους δίσκους να δρουν ανεξάρτητα, ο αλγόριθμος καταντά πολύπλοκος και μερικές φορές δεν αξίζει το κόστος αυτό είναι μεγαλύτερο

Page 13: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΕΞΩΤΕΡΙΚΗ ΤΑΞΙΝΟΜΗΣΗ

Τα προβλήματα της ταξινόμησης είναι από τα σημαντικότερα στον τομέα των ΕΜ προβλημάτων

Όριο:

Οι αλγόριθμοι χωρίζονται σε δύο κατηγορίες:– distribution– merge

( ) logmn

Sort N nD

Page 14: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

DISTRIBUTION ΑΛΓΟΡΙΘΜΟΙ

Επαναληπτική διαδικασία Σε κάθε βήμα ορίζουμε S-1 σημεία διαχωρισμού και με βάση τα

σημεία αυτά χωρίζουμε τα αντικείμενα σε S κάδους Ταξινομούμε επαναληπτικά τους κάδους και στη συνέχεια τους

ενώνουμε για να πάρουμε την τελική ταξινομημένη λίστα Πρέπει τα σημεία διαχωρισμού να είναι τέτοια ώστε οι κάδοι να

έχουν σχετικά ίδιο μέγεθος Τότε, σε κάθε βήμα το μέγεθος κάθε κάδου μειώνεται κατά ένα

παράγοντα Θ(S) και άρα υπάρχουν Ο(logsn) επίπεδα αναδρομής

Πρέπει σε κάθε επίπεδο να δημιουργούμε τους κάδους σε Ο(n/D). Άρα αν έχουμε D>1, πρέπει τα δεδομένα να είναι ομοιόμορφα κατανεμημένα στους D δίσκους.

Page 15: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

DISTRIBUTION ΑΛΓΟΡΙΘΜΟΙ

Τεχνική partial stripping. – Οι δίσκοι χωρίζονται σε ομάδες των C δίσκων– Σε κάθε ομάδα δίσκων χρησιμοποιούμε disk stripping

Αλγόριθμοι– Vitter & Shriver. Δύο τεχνικές: μία για μεγάλο N και μία για μικρό N.

Η πρώτη γράφει με τυχαία σειρά τα blocks . H δεύτερη χρησιμοποιεί diagonal stripe

– Nodine & Vitter. Κρατάει στατιστικά στοιχεία για το πώς έχουν κατανεμηθεί οι κάδοι στους δίσκους. Με χρήση τεχνικών εγγυάται ότι τα μεγέθη των κάδων δεν θα διαφέρουν κατά πολύ

Πλεονέκτημα disk stripping. Δυνατότητα parity check.

Page 16: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

MERGING ΑΛΓΟΡΙΘΜΟΙ

Διαβάζουμε τα δεδομένα ανά memoryload. Κάθε memoryload το ταξινομούμε σε μια λίστα και την εγγράφουμε σε disk stripping. Άρα μετά το πρώτο πέρασμα έχουμε Ν/Μ λίστες.

Φάση συγχώνευσης. Συγχωνεύονται ομάδες από R λίστες. Ο αριθμός των περασμάτων είναι Ο(logmn).

Πρέπει κάθε φάση συγχώνευσης να γίνεται σε Ο(n/D). Αν D > 1, είναι δύσκολο γιατί τα όλα τα blocks πρέπει να βρίσκονται σε διαφορετικούς δίσκους.

Οι Nodine & Vitter πρότειναν έναν βέλτιστο αλγόριθμο που δημιουργεί περίπου ταξινομημένες λίστες και στη συνέχει εφαρμόζεται ένα επιπλέον πέρασμα για διόρθωση τυχόν λαθών/

Page 17: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

MERGING ΑΛΓΟΡΙΘΜΟΙ

SRM αλγόριθμος. Κάθε λίστα γράφεται σε stripes αλλά με τυχαίο σημείο έναρξης κάθε φορά. Τυχόν blocks που δεν χρειάζονται εξαλείφονται. Στις περισσότερες περιπτώσεις είναι βέλτιστος

Page 18: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΙΑΧΕΙΡΙΣΗ ΔΙΠΛΟΤΥΠΩΝ

Σε περίπτωση που από τα N αντικείμενα, μόνο Κ < Ν έχουν διαφορετική τιμή, τότε έχουν προταθεί αποδοτικότεροι αλγόριθμοι

Ο Arge πρότεινε έναν αλγόριθμο που απαιτεί

Όταν τα αντικείμενα έχουν διαφορετική δευτερεύουσα πληροφορία έχουμε το πρόβλημα του bundle sorting. Αλγόριθμους σχετικούς πρότειναν οι Abello και Matias με απόδοση

( max{1, log ( )})mO n K B

( max{1, log min{ , }})mO n K n

Page 19: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΑΝΤΙΜΕΤΑΘΕΣΗ & ΜΕΤΑΤΟΠΙΣΗ

Η αντιμετάθεση αποτελεί μια ειδική περίπτωση ταξινόμησης όπου τα Ν αντικείμενα είναι στο εύρος 1..Ν

Όριο Αντιμετάθεση πίνακα:

min ,NSort N

D

log min{ , , , }m

nM p q n

D

Page 20: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΠΛΕΓΜΑΤΑ ΚΑΙ ΠΙΝΑΚΕΣ

Οι πυκνοί πίνακες αποθηκεύονται στην κύρια μνήμη συνήθως σε row-major ή σε column-major διάταξη

Η αντιμετάθεση ενός πίνακα αφορά στην μετατροπή από την μία αναπαράσταση στην άλλη

Για τις περισσότερες λειτουργίες, οι αναπαραστάσεις αυτές είναι αποδοτικές. Για κάποιες άλλες όμως, όπως πολ/μο πινάκων ή διάσπαση LU είναι καλύτερη αναπαράσταση η διάσπαση των πινάκων σε τετραγωνικούς πίνακες διάστασης B B

Page 21: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΠΛΕΓΜΑΤΑ ΚΑΙ ΠΙΝΑΚΕΣ

Πολ/μος : Αν ο πίνακας είναι αραιός, έχει δηλαδή

πολλά μηδενικά στοιχεία, τότε μπορεί να αποθηκευτεί και σε αραιή μορφή. Σε τέτοια περίπτωση για την αντιμετάθεση των πινάκων απαιτούνται: Θ(Sort(Nz)) I/Os

3( / min{ , } )K K M DB

Page 22: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

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

Προβλήματα που περιέχουν μεγάλες ποσότητες γεωμετρικών δεδομένων είναι τα συστήματα GIS, γραφικά, συστήματα εικονικής πραγματικότητας και spatial βάσεις δεδομένων

Τα batch γεωμετρικά προβλήματα, μπορούν συνήθως να αναχθούν σε κάποια βασικά γεωμετρικά προβλήματα και να επιλυθούν αναλόγως σε (( ) log )mO n q n z

Page 23: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

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

Οι Goodrich et al ανέπτυξαν ΕΜ αλγορίθμους για γεωμετρικά προβλήματα χρησιμοποιώντας τα παρακάτω ΕΜ παραδείγματα για batch προβλήματα

– Distribution sweeping– Persistent B-trees– Batched filtering– External fractional cascading– External marriage-before-conquest– Batched incremental construction

Σημαντικοί αλγόριθμοι– SSSJ (scalable sweeping-based spatial join)– QPBSM – MPBSM

Page 24: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

BATCH ΠΡΟΒΛΗΜΑΤΑ ΣΕ ΓΡΑΦΗΜΑΤΑ

Page 25: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

BATCH ΠΡΟΒΛΗΜΑΤΑ ΣΕ ΓΡΑΦΗΜΑΤΑ

Ερευνητές που ασχολήθηκαν με το συγκεκριμένο τομέα– Ullman & Yiannakakis (μεταβατική κλειστότητα)– Chiang et Al (ταξινόμηση & αντιμετάθεση)

Ο Chiang πρότεινε τη σχεδίαση EM αλγορίθμων εξομοιώνοντας ακολουθιακά τη χρήση ενός παράλληλου αλγορίθμου για το ίδιο πρόβλημα

Page 26: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

HASHING ΓΙΑ ONLINE ΑΝΑΖΗΤΗΣΗ ΣΕ DICTIONARIES

Online δομές δεδομένων που υποστηρίζουν dictionary λειτουργίες όπως εισαγωγή, διαγραφή και αναζήτηση

Δύο τύποι ΕΜ dictionaries: hashing και tree-based

Πλεονέκτημα hashing: ο αναμενόμενος αριθμός συγκρίσεων ανά λειτουργία είναι σταθερός και ανεξάρτητος του N

Page 27: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

HASHING

Hash συνάρτηση hash : {όλα τα δυνατά κλειδιά} → {0, 1, 2, …,

Κ-1} Οι αλγόριθμοι διαφοροποιούνται για το πώς

επιλύουν τις συγκρούσεις Στόχος: ανά αναζήτηση,

Ο(1) ανά εισαγωγή και διαγραφή Δυναμικές δομές hashing

( ( )) ( )O Output Z O z

Page 28: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΥΝΑΜΙΚΟ HASHING

Δύο κατηγορίες – Directory– Direcotryless

Directory– Πίνακας μεγέθους 2d

από κελιά– Τα αντικείμενα αποθηκεύονται σε κελιά ανάλογα με τα d

τελευταία bits της hash διεύθυνσής τους– Κάθε κελί έχει ένα δείκτη προς το block που αποθηκεύονται

τα αντικείμενα– 2 Ι/Οs ανά αναζήτηση– Διάσπαση και συνένωση κελιών.

Κάθε κελί έχει ένα τοπικό βάθος b. Μπορεί να μοιράζεται το ίδιο block με άλλα κελιά

– Blocks κατά 67% γεμάτα

Page 29: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΥΝΑΜΙΚΟ HASHING

Directoryless– Δεν υπάρχει directory– 1 Ι/Ο ανά αναζήτηση– Χρησιμοποιούνται λίστες υπερχείλισης – Τα blocks διασπώνται με προαποφασισμένη

σειρά

Page 30: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΥΝΑΜΙΚΟ HASHING

Page 31: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΕΝΔΡΙΚΕΣ ΔΟΜΕΣ

Τα αντικείμενα σε ένα δέντρο είναι ταξινομημένα

Επιτρέπεται range αναζήτηση Συνηθισμένες δομές

– B-trees και παραλλαγές– Ισοζυγισμένα Β-trees – Buffer trees

Page 32: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

B-TREES

Ένα block ανά κόμβο με Θ(Β) δείκτες ή αντικείμενα Multiway b-tree.

– Βαθμός κάθε κόμβου Θ(Β)– Ύψος: – Αναζήτηση σε γραμμικό χρόνο– Εισαγωγή/ διαγραφή σε – Ερώτηση

Παραλλαγές – Β+- tree. Αποθήκευση δεδομένων μόνο στα φύλλα– B* - tree. Μοίρασμα δεδομένων με γειτονικό κόμβο

logB N

(log )BO N(log )BO N z

Page 33: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

SPATIAL ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Αποθήκευση και ερώτηση δεδομένων χώρου Δύο είδη χωρικών δομών

– Data-driven Βασίζονται στο διαχωρισμό των ίδιων των αντικειμένων Π.χ R-trees, kd-trees

– Space-driven Διαχωρισμός του χώρου των αντικειμένων Π.χ quad δέντρα, αρχεία grid

Γνωστές δομές– Cross tree

D-διάστατη έκδοση του Β-tree Data-driven διαχωρισμός στα πάνω επίπεδα, space-driven κάτω Ερωτήσεις σε Εισαγωγές – διαγραφές σε

1 1/( )dO n z (log )BO N

Page 34: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

SPATIAL ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

R-tree– Εσωτερικοί κόμβοι έχουν βαθμό Θ(Β)– Φύλλα : Θ(Β) αντικείμενα – Τα δεδομένα γειτονικών κόμβων επιτρέπεται να

επικαλύπτονται

Page 35: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΥΝΑΜΙΚΕΣ & ΚΙΝΗΤΙΚΕΣ ΔΟΜΕΣ

Ολοένα και περισσότερος αριθμός προβλημάτων με δεδομένα/αντικείμενα που αλλάζουν ή κινούνται

Αυτοκίνητα, κινητά τηλέφωνα, αεροπλάνα κτλ. Δύο τεχνικές

– Υπάρχουσες δομές δεδομένων και συνεχή ενημέρωση– Αποθήκευση τροχιάς και ταχύτητας κάθε αντικειμένου

Ενημέρωση μόνο όταν αλλάζει κάποιο από τα παραπάνω Κάθε στιγμή ξέρουμε τη θέση του αντικειμένου Περισσότερες διαστάσεις - Πολυπλοκότητα

Page 36: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΕΠΕΞΕΡΓΑΣΙΑ STRING

Πολλές μέθοδοι– Ανεστραμμένα αρχεία (όπως το ευρετήριο στο

τέλος των βιβλίων)– String B-trees

Strings στα φύλλα Εσωτερικοί κόμβοι: κλειδιά αναζήτησης

– SB-tree

Page 37: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΕΠΕΞΕΡΓΑΣΙΑ STRINGS

Suffix tree– Δέντρο προθεμάτων– Γρήγορη αναζήτηση σε γραμμικό χρόνο με το

μέγεθος του string αναζήτησης

Suffix array– Περιλαμβάνει μόνο τα φύλλα του suffix tree σε

συμμετρική σειρά πρόσβασης

Page 38: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΥΝΑΜΙΚΗ ΚΑΤΑΝΟΜΗ ΜΝΗΜΗΣ

Το μέγεθος της εσωτερικής μνήμης που κατανέμεται σε ένα πρόγραμμα μπορεί να ποικίλλει κατά τη διάρκεια της εκτέλεσης λόγω άλλων απαιτήσεων του συστήματος τη στιγμή εκείνη. Οι ΕΜ αλγόριθμοι θα πρέπει να μπορούν να προσαρμόζονται δυναμικά στους πόρους που είναι διαθέσιμοι ώστε να έχουν καλή απόδοση. Όλοι οι αλγόριθμοι που παρουσιάστηκαν υποθέτουν σταθερό μέγεθος μνήμης .

Page 39: EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA

ΔΥΝΑΜΙΚΗ ΚΑΤΑΝΟΜΗ ΜΝΗΜΗΣ

Οι Barve και Vitter ασχολούνται με το σχεδιασμό και την ανάλυση ΕΜ αλγορίθμων οι οποίοι προσαρμόζονται σε διαφορετικά μεγέθη μνήμης. Στο μοντέλο τους, σε έναν αλγόριθμο P κατανέμεται η εσωτερική μνήμη σε φάσεις. Κατά τη διάρκεια της i-th φάσης, στον P κατανέμεται mi blocks εσωτερικής μνήμης και η μνήμη αυτή παραμένει κατανεμημένη στον P μέχρι ο P ολοκληρώσει 2mi I/O λειτουργίες, όπου ξεκινά και η επόμενη φάση. Η διαδικασία συνεχίζεται μέχρι ο P να τελειώσει.