Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Μέθοδοι και Τεχνολογίες για Διαχείριση Μεγάλου Όγκου Δεδομένων Διδάσκοντες:Μακρής Χρήστος Διδασκαλία:Πέμπτη:

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Μέθοδοι και Τεχνολογίες για Διαχείριση Μεγάλου Όγκου Δεδομένων Διδάσκοντες:Μακρής Χρήστος Διδασκαλία:Πέμπτη:"— Μεταγράφημα παρουσίασης:

1 Μέθοδοι και Τεχνολογίες για Διαχείριση Μεγάλου Όγκου Δεδομένων Διδάσκοντες:Μακρής Χρήστος e-mail: makri@ceid.upatras.grmakri@ceid.upatras.gr Διδασκαλία:Πέμπτη: 16:00-18:00 Π200

2 Περιγραφή του Μαθήματος Το μάθημα απευθύνεται σε όσους φοιτητές θέλουν να αποκτήσουν βασικές γνώσεις στην περιοχή των δομών δεδομένων και των αλγοριθμικών τεχνικών που σχετίζονται με τη διαχείριση και επεξεργασία μεγάλου όγκου δεδομένων. Σχετιζόμενα Μαθήματα: Δομές Δεδομένων, Προχωρημένες Δομές Δεδομένων και Γραφική, Θεωρία Βασικών Δομών Δεδομένων, Αλγόριθμοι, Τεχνολογίες Υλοποίησης Αλγορίθμων. Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας, Ανάκτηση Πληροφορίας, Βάσεις Δεδομένων I,II.

3 Αντικείμενα που Καλύπτονται Τα θέματα που καλύπτονται στο μάθημα είναι τα ακόλουθα: 1. Μοντέλα Δευτερεύουσας Μνήμης (Μοντέλο δύο επιπέδων, ιεραρχικά μοντέλα, Cache Oblivious μοντέλα). 2. Αλγόριθμοι και Δομές Δεδομένων για μοντέλα δύο επιπέδων (B-Trees, Weight Balanced B-Trees, Buffer Trees) 3.Αλγόριθμοι Υπολογιστικής Γεωμετρίας στη Δευτερεύουσα Μνήμη. 4.Αλγόριθμοι για προβλήματα Εύρεσης Περιοχής στη Δευτερεύουσα Μνήμη. 5.Αλγόριθμοι Διαχείρισης Συμβολοσειρών στη Δευτερεύουσα Μνήμη 6. Αλγόριθμοι και Δομές Δεδομένων για Cache Oblivious Μοντέλα (Cache Oblivious B-Tree, Cache Oblivious Ουρές Προτεραιότητας, Γεωμετρικοί Αλγόριθμοι στο Cache Oblivious Μοντέλο Υπολογισμού). 7. Aλγόριθμοι στο Μοντέλο Ροής Δεδομένων. 8. Εφαρμογές (Xρονικές Βάσεις Δεδομένων, Χωροχρονικές Βάσεις Δεδομένων, Πολυμεσικές Βάσεις Δεδομένων).

4 Διαδικαστικά  Εξέταση (π ροφορική )  Εργασία : – Παρουσίαση – Γρα π τή Αναφορά  Τελικός Βαθμός : Ημιάθροισμα

5 RAM Μοντέλο Υπολογισμού Βασικό θεωρητικό μοντέλο υπολογισμού: Άπειρη μνήμη Ομοιόμορφο κόστος προσπέλασης Απλό μοντέλο πολύχρηστο σε εφαρμογές της πληροφορικής

6 Πρακτικά Θέματα  Caching  Virtual Memory  Secondary Storage -Disk:Floppy (hard, soft) Winchester Ram Disks Optical, CD-Rom Arrays TapeReel, Cartirdge Robots

7 Τυπικές Χρονικές Πολυπλοκότητες Seek Time (χρόνος εντοπισμού) 10 ms -> 40 ms Rotational Delay (χρόνος καθυστέρησης περιστροφής) 4.16 ms Block Transfer Time (χρόνος μεταφοράς block) t: 10 -> 50 MB/sec block size: 32Kb, t=32MB/second, παράγει χρόνο μεταφοράς block 1 ms Διαφορά Random από Sequential I/O Κόστος Εγγραφής παρόμοιο με Ανάγνωσης

8 Προβλήματα Μεταφερσιμότητας Πολλά προγράμματα που έχουν αναπτυχθεί για το RAM μοντέλο τρέχουν σε μεγάλα σύνολα δεδομένων γιατί το Λ/Σ μετακινεί τα blocks ως οφείλει Τα μοντέρνα Λ/Σ χρησιμοποιούν πολύπλοκες paging και prefetching στρατηγικές εντούτοις αν το πρόγραμμα πραγματοποιεί διασκορπισμένες προσπελάσεις ακόμα και τα καλά Λ/Σ δεν μπορούν να αξιοποιήσουν τις block προσπελάσεις.

9 Μοντέλα Ιεραρχικών Μνημών

10 Διεπίπεδες Ιεραρχίες Μνημών Δεδομένα προβλημάτων στο δίσκο Έξοδος προβλημάτων στο δίσκο Αλγοριθμικό κόστος είναι οι πράξεις εισόδου/εξόδου Τα στοιχεία ομαδοποιούνται σε blocks μεγέθους B

11 Παράλληλα Υποσυστήματα Δίσκων Μη περιορισμένο Παράλληλο Μοντέλο Τα αντικείμενα ομαδοποιούνται στο δίσκο, με B αντικείμενα ανά block Οποιοδήποτε από D blocks μπορεί να γραφεί και να διαβαστεί ταυτόχρονα σε ένα I/O (Aggarwal, Vitter 1987)

12 Παράλληλα Υποσυστήματα Δίσκων: Παράλληλα Μοντέλα Δίσκων [Vitter, Shriver 1990]  D blocks μπορούν να διαβαστούν/γραφούν ταυτόχρονα, αλλά μόνο εάν βρίσκονται σε διακριτούς δίσκους  Πιο ρεαλιστικό μοντέλο από το μη περιορισμένο παράλληλο μοντέλο  Εντούτοις ακόμη μη ρεαλιστικό, καθώς τώρα η CPU μπορεί να είναι το σημείο αδιεξόδου εάν το D είναι αρκετά μεγάλο.

13 Παράλληλες Ιεραρχίες Μνημών H ιεραρχίες του ίδιου τύπου (με H CPUs) συνδέονται με ένα “δίκτυο” Το δίκτυο διατάσσει ντετερμινιστικά σε log H χρόνο

14 Πολυεπίπεδες Ιεραρχίες Μνημών: Hierarchical Memory Model (HMM) [Aggarwal, Alpern, Chandra, Snir 1987] Προσπέλαση στη θέση μνήμης x απαιτεί χρόνο f(x) Η f είναι μία αύξουσα συνάρτηση έτσι ώστε να υπάρχει σταθερά c όπου f(2x) ≤ cf(x) για κάθε x

15 Cache Oblivious Μοντέλο (1) Έστω μία ιεραρχία με τρία επίπεδα (π.χ. Cache, RAM, δίσκο) Έστω ότι η μεταφορά block σε χαμηλότερα επίπεδα γίνεται σε B 1 λέξεις και στα υψηλότερα σε B 2 λέξεις. Πως θα μπορούσε να σχεδιαστεί αλγόριθμος που θα παίρνει υπόψιν του και B 1 και Β 2 ;

16 Cache Oblivious Μοντέλο (2) Ένα επίπεδο στην ιεραρχία παίζει το ρόλο της cache για το επόμενο επίπεδο. Η διαδικασία caching ελέγχεται σε hardware και software. Κοινές στρατηγικές caching: LRU, FIFO Συνήθως περιορισμένες εκδοχές της LRU, FIFO. Πιο συγκεκριμένα στην πράξη έχουμε περιορισμένη associativity: ο αριθμός των πιθανών θέσεων για δοθέν block είναι ένας μικρός αριθμός k.

17 Cache Oblivious Μοντέλο (3) Δύο επιπέδων ιεραρχία Cache μεγέθους M Cache-line μήκους B Πλήρως associative Βέλτιστη αντικατάσταση

18 Cache Oblivious Μοντέλο (4) Βασικές Υποθέσεις Δύο επιπέδων ιεραρχία Tall Cache Assumption: M=Ω(Β 2 ) Βέλτιστη πολιτική Cache Replacement Cache Oblivious Αλγόριθμοι Αλγόριθμος που δεν χρειάζεται να ξέρει M, B. Στην ανάλυση του αλγορίθμου οι πολυπλοκότητες εκφράζονται ως συναρτήσεις των M και Β Αναμένουμε παρόμοια πολυπλοκότητα με αυτή του κλασσικού μοντέλου. Λογική Αλγορίθμων Ένας Cache-Oblivious αλγόριθμος είναι αυτόματα βέλτιστος για όλα τα επίπεδα μίας ιεραρχίας μνήμης.

19 Βασικό Μοντέλο N= # στοιχείων στο πρόβλημα B = # στοιχείων στο disk block M = # στοιχείων στη κύρια μνήμη T = # στοιχείων στην έξοδο I/O: Μετακίνηση block μεταξύ μνήμης και δίσκου Υποθέτουμε ότι M >B 2 Τρόποι μέτρησης της απόδοσης –Αριθμός Ι/Οs –Χώρος του δίσκου που χρησιμοποιείται –Χρόνος υπολογισμού που απαιτείται Τι σημαίνει βέλτιστη πολυπλοκότητά;

20 Βασικές Τεχνικές  Merge-Sort like techniques  Distribution Sorting techniques  Distribution sweeping  Persistent B-Trees (off-line τεχνική, βελτιώνει κατά B την on-line τεχνική)  Batched Filtering (τεχνική ταυτόχρονων ψαξιμάτων, σε δομές που μπορούν να μοντελοποιηθούν σα διγραφήματα)  External Fractional Cascading  External Marriage Before Conquest  Batched Incremental Construction

21 Βασικές Πολυπλοκότητες Internal External Scanning: N Sorting: N log N Permuting Searching:  Παρατηρήσεις: –Γραμμικό I/O: O(N/B) –Αναδιάταξη μη γραμμική –Οι χρόνοι αναδιάταξης και διάταξης είναι πρακτικά ίσοι –B παράγοντας ΠΟΛΥ σημαντικός: –Δεν μπορεί να διατάξει βέλτιστα

22 Βιβλιογραφία Aggarwal and Vitter, 1988. The input/output complexity of sorting and related problems. Communications of the ACM 31, 9, 1116-1127 Aggarwal, Alpern, Chandra, Snir, A model for hierarchical memory. In Proceedings of the IEEE Symposium on Foundations of Computer Science, 19, 305-314 Aggarwal, Chandra, Snir, Hierarchical memory with block transfer. In Proceedings of the IEEE Symposium on Foundations of Computer Science, 28, 204-216. Vitter and Shriver, Algorithms for parallel memory I: Two-level memories. Algorithmica 12 2-3, 10-147. Vitter and Shriver, Algorithms for parallel memory II: Hierarchical multilevel memories. Algorithmica 12 2-3, 148-169.

23 Αναπαράσταση Δεδομένων Ιεραρχικές Δομές Δεικτοδότησης

24 Αναπαράσταση Δεδομένων Μία πλειάδα αποθηκεύεται σε μία εγγραφή. Το σχήμα περιέχει: τύπους πεδίων offsets για τα πεδία σε μία εγγραφή μέγεθος εγγραφής Timestamps

25 Fixed-length records in blocks To block μπορεί να περιέχει: index information τύπο πλειάδων Offset table Block id Timestamps

26 Block address for blocks in main memory The block has a virtual memory address when it is loaded into a buffer in main memory Block address for blocks in secondary memory The block has no virtual memory address. The physical address space has to be used. The physical address describes the physical location of the block. Block Addresses in Main and Secondary Memory

27 Physical Address Describes physical location, i.e. disk, cylinder, track numbers. Typical size 8-16 bytes. Logical address A fixed length arbitrary string for each record. A table is used to map logical addresses to physical addresses. Physical and logical addresses

28 Structured Address A combination of physical and logical addresses. Reasons why structured addresses are useful A record can move within a block and still have the same structured address When a record is removed it can be replaced by a tombstone that marks it deleted. Structured addresses

29 Fields of variable length Store fixed length fields first in the record. Store the total size of the record Store offsets for variable sized fields.

30 B-Tree  B-δέντρο με βαθμό εξόδου b και παράμετρο φύλλων k (b,k≥8) –Όλα τα φύλλα είναι στο ίδιο επίπεδο και περιέχουν ανάμεσα από 1/4k και k στοιχεία –Εκτός από τη ρίζα, όλοι οι κόμβοι έχουν βαθμό εξόδου μεταξύ 1/4b και b –Η ρίζα έχει βαθμό εξόδου μεταξύ 2 και b  B-δέντρο με παράμετρο φύλλων –O(N/B) χώρος –Ύψος – επιμερισμένο κόστος επαναζύγισης φύλλων – amortized internal node rebalance operations  B-tree with branching parameter Bc, 0<c≤1, and leaf parameter B –Space O(N/B), updates Ο(log B N+k/B), queries –Variations: B+ (leaf links), B* (variations of B+, with no splitting, sharing if possible).

31 Δευτερεύουσες Δομές  Όταν χρησιμοποιούνται δομές δευτερεύουσας αποθήκευσης, μία επαναζύγιση στο v θα είναι καλό να κοστίζει Ο(O(w(v)) I/Os (w(v) είναι το βάρος του v) –Εάν ενθέσεις πρέπει να περάσουν από το v –  O(1) επιμερισμένο κόστος διάσπασης –  επιμερισμένο κόστος ένθεσης  Οι κόμβοι στο κλασσικό B-tree δεν έχουν την ιδιότητα αυτή

32 ΒΒ[α]-Tree  BB[  ]-δέντρα έχουν την ιδιότητα αυτή  Ορίζεται με ιδιότητες βάρους –Το πηλίκο ανάμεσα στο βάρος του αριστερού παιδιού και του δεξιού παιδιού είναι μεταξύ  και 1-  –– –Ύψος O(log N)  Εάν επαναζύγιση μπορεί να γίνει με χρήση περιστροφών  Φαίνεται δύσκολο να υλοποιηθούν τα BB[  ]-δέντρα I/O-αποτελεσματικά

33 Weight-balanced B-tree  Συνδυασμός B-tree και BB[  ]-tree –Περιορισμός βάρους αντί βαθμού –Επαναζύγιση με διάσπαση/συγχώνευση όπως σε B-tree  Weight-balanced B-tree με παραμέτρους b και k (b>8, k≥8) –Όλα τα φύλλα στο ίδιο βάθος και –περιέχουν μεταξύ k/4 και k στοιχεία –Εσωτeρικός κόμβος v στο επίπεδο l έχει –w(v) <b l k –Εκτός από τη ρίζα, εσωτερικός κόμβος v στο επίπεδο l έχει w(v)>(1/4) b l k –Η ρίζα έχει πιο πολλά από ένα παιδιά.

34 Κάθε εσωτερικός κόμβος έχει βαθμό μεταξύ b και 4b. Ύψος->O(log B N/k) Extern: Choose 4b=B (or even B c for 0 < c ≤ 1) k=B –– – O(N/B) χώρος, χρόνος ερώτησης

35 Weight-balanced B-tree Insert  Ψάξε για σχετικό φύλλο u και ένθεσε νέο στοιχείο  Διαπέρασε μονοπάτι από φύλλο u σε ρίζα: –Εάν ο κόμβος v επιπέδου l έχει w(v)=b l k+1 παιδιά –σπάσε τον κόμβο σε κόμβους v’ και v’’ with – και  Αλγόριθμος σωστός εφόσον: έτσι ώστε και –Προσπελαύνονται κόμβοι  Ιδότητα βαροζύγισης: - Ω(b l k) ενημερώσεις κάτω από v’ και v’’ πριν επόμενη πράξη.

36 Weight-balanced B-tree Delete  Ψάξε για σχετικό φύλλο u και διέγραψε στοιχείο  Διαπέρασε μονοπάτι από u στη ρίζα: –Εάν ο επιπέδου l κόμβος v έχει τώρα –τότε συγχώνευσε με sibling στο κόμβο v’ –όπου –Εάν then split into nodes –με βάρος –και  Αλγόριθμος σωστός και ακουμπά κόμβους :Ιδιότητα βάρους – πράξεις κάτω από v’ και v’’ πριν την επόμενη πράξη

37 Σύνοψη: Weight-balanced B-tree  Βαροζυγισμένο B-tree με βαθμό εξόδου b και παράμετρο φύλλου k=Ω(B) –O(N/B) χώρος –Ύψος – πράξεις επαναζύγισης μετά από ενημέρωση –Ω(w(v)) ενημερώσεις κάτω από το v ανάμεσα από συνεχόμενες πράξεις v  Βαροζυγισμένο B-tree με βαθμό εξόδου Bc και παράμετρο φύλλου B –Ενημερώσεις και ερωτήσεις σε I/Os  Δόμηση από κάτω προς τα άνω σε I/Os

38 Διαχρονικότητα Χρονικές Βάσεις Δεδομένων Βάσεις Δεδομένων Χρόνου Δοσοληψίας (Transaction Time) Διατηρούν την ιστορία της δραστηριότητάς τους. Κάθε δοσοληψία με τη Βάση Δεδομένων προσδιορίζεται με μία χρονική ένδειξη. Είναι εφικτή η προσπέλαση διαφορετικών χρονικών στιγμιοτύπων της Βάσης Δεδομένων. Βάσεις Δεδομένων Ισχύοντος Χρόνου (Valid Time) Διατηρούν αντικείμενα που μία συνιστώσα τους υποδηλώνει χρονικά στιγμιότυπα. Το σύνολο των τιμών αυτών αποθηκεύουν τις τωρινές γνώσεις για το παρόν, το παρελθόν ή ακόμα και το μέλλον των αποθηκευμένων αντικειμένων. Διχρονικές Βάσεις Δεδομένων (Bitemporal) Αποτελούν συνδυασμό των δύο παραπάνω κατηγοριών. Αναπαριστούν την πραγματικότητα επιτρέποντας είτε αναδρομικές είτε εκ των υστέρων αλλαγές.

39 Βάσεις Δεδομένων Χρόνου Δοσοληψίας Χρονική Εξέλιξη

40 Βάσεις Δεδομένων Ισχύοντος Χρόνου Χρονική Εξέλιξη

41 Διχρονικές Βάσεις Δεδομένων Χρονική Εξέλιξη

42 Διαχρονικότητα-Έννοιες Δομές Δεδομένων Εφήμερες i Διαχρονικές Μόνο μία εκδοχή Μερικώς ii+1i+2 Γραμμική ακολουθία εκδοχών Πλήρως i i+1i+4i+2 Δεντρική δομή εκδοχών Συνενωτικώς i i+4i+2 i+3 i+5i+5 i+6 DAG εκδοχών i+3

43 α) fat-node β) node-copying Δύο γενικές μέθοδοι για διασυνδεμένες δομές : πεπερασμένο σύνολο κόμβων με σταθερό αριθμό πεδίων (δεδομένα και δείκτες) σταθερό αριθμό κόμβων εισόδου Χώρος=Ο(1)/ενημερ. Χρόνος=Ο(logm)/ενημερ.ή προσπέλαση Επιμερισμένος Χώρος=Ο(1)/ενημέρωση Μετατροπή Εφήμερης Δομής σε Μερικώς Διαχρονική ([Driscoll et al. 89])

44 Πεδία Δεικτών Πεδία Πληροφορίας Πεδία Δεικτών Πεδία Πληροφορίας Επιπλέον Πεδία i Τιμή Πεδίου Εφήμερος Κόμβος Διαχρονικός Κόμβος έκδοση κόμβου Fat Node Μέθοδος Ονομα Πεδίου Έκδοση

45 Node-Copying Μέθοδος Κόμβοι περιορισμένης χωρητικότητας: όταν ο κόμβος γεμίσει δημιουργούμε νέο αντίγραφο του κόμβου ενημέρωση πεδίου Επειδή πρέπει να είναι εφικτή η προσπέλαση ενός νέου κόμβου πρέπει να αντιγράψουμε τους άμεσους προγόνους του  η μέθοδος δίνει ένα σταθερό επιμερισμένο κόστος όταν ο βαθμός εισόδου κάθε κόμβου είναι φραγμένος.

46 Διαχρονικό Β-Tree  Μερική Διαχρονικότητα –Ενημέρωσε τρέχουσα έκδοση (παράγοντας νέα) –Ρώτησε όλες τις εκδόσεις  Θα θέλαμε μερικώς διαχρονικό B-tree με –O(N/B) χώρο – N ο αριθμός πράξεων ενημέρωσης -- κόστος ενημέρωσης και χρόνος ερώτησης.

47 Διαχρονικό Β-Tree  Εύκολος τρόπος μετατροπής του B-tree σε μερικώς διαχρονική δομή –αντέγραψε δομή σε κάθε πράξη –διατήρησε βοηθητική δομή “προσπέλασης εκδόσεων” (B-tree)  Ικανοποιητικός χρόνος ερώτησης ανά έκδοση, αλλά –O(N/B) χρόνος I/O ενημέρωσης –O(N 2 /B) χώρος

48 Διαχρονικό B-tree  Τα στοιχεία εφοδιάζονται με “διάστημα ύπαρξης” και αποθηκεύονται σε μία δομή  Διαχρονικό B-tree με παράμετρο b (>16): –Κατευθυνόμενο γράφημα Οι κόμβοι περιέχουν στοιχεία εφοδιασμένα με διάστημα ύπαρξης Κάθε χρονική στιγμή t, οι κόμβοι με στοιχεία ενεργά τη χρονική στγμή t σχηματίζουν B-tree με παράμετρο φύλλου και βαθμό εξόδου b –B-tree με χωρητικότητα φύλλου b και βαθμό εξόδου b σε κόμβο βαθμού εισόδου 0   Εάν b=B: –Χρόνος ερώτησης I/Os

49 Διαχρονικό B-tree: Ενημερώσεις Ενημερώσεις όπως και στο B-tree Για διατήρηση γραμμικού χώρου διατηρούμε την εξής συνθήκη: Ένας νέος κόμβος περιέχει μεταξύ 3Β/8 και ενεργά στοιχεία και κανένα ανενεργό.

50 Διαχρονικό B-tree - Ένθεση  Ψάξε για σχετικό φύλλο u και ένθεσε νέο στοιχείο  Εάν ο u περιέχει B+1 στοιχεία: Block overflow –Version split: –Σημείωσε u ανενεργό και δημιούργησε νέο κόμβο u’ –If : Strong overflow –If : Strong underflow –If τότε ενημέρωσε parent(u): –Διέγραψε αναφορά σε u και ένθεσε σε u’

51 Persistent B-tree Insert  Strong overflow ( ) –Διέσπασε v σε v’ και v’’ με στοιχεία ( ) –Ενημέρωσε parent(v): –Διέγραψε αναφορά σε v και ένθεσε αναφορές σε v’ και v’’  Strong underflow ( ) –Συγχώνευσε x στοιχεία με y ενεργά στοιχεία από version split στο sibling ( ) –Εάν τότε (strong overflow) διέσπασε σε κόμβους με (x+y)/2 elements ( ) –Αναδρομικά ενημέρωσε parent(u): Διέγραψε δύο, ένθεσε μία/δύο αναφορές

52 Persistent B-tree Delete  Ψαξε για φύλλο u και μαρκάρισε στοιχείο ανενεργό  Εάν u περιέχει ενεργά στοιχεία: Block underflow –Version split: –Σημείωσε u ανενεργό και δημιούργησε κόμβο u’ με x ενεργά στοιχεία –Strong underflow ( ): –Συγχώνευσε (version split) και διάσπασε (strong overflow) –Αναδρομικά ενημέρωσε parent(u): –Διέγραψε δύο αναφορές, ένθεσε μία ή δύο

53 Persistent B-tree Insert Delete done Block overflow Block underflow done Version split Strong overflow Strong underflow MergeSplit done Strong overflow Split done -1,+1 -1,+2 -2,+2 -2,+1 0,0

54 Persistent B-tree Analysis  Ενημέρωση: –Ψάξιμο και “επαναζύγιση” σε ένα μονοπάτι  Χώρος: O(N/B) –τουλάχιστον ενημερώσεις στο φύλλο σε διάστημα ύπαρξης –Όταν το u ανενεργό Το πολύ δύο νέοι κόμβοι δημιουργούνται Το πολύ ένα block over/underflow ένα επίπεδο άνω (in parent(l)) –– –Σε N ενημερώσεις, δημιουργούμε: φύλλα κόμβους i επίπεδα άνω –  blocks

55 Persistent B-tree  Διαχρονικό B-tree –ενημέρωσε τρέχουσα έκδοση –Ρώτησε όλες τις εκδόσεις  Αποδοτική υλοποίηση με χρήση existence intervals –Standard τεχνική    Κατά τη διάρκεια N πράξεων –O(N/B) χώρος – χρόνος ενημέρωσης – χρόνος ερώτησης

56 Άλλες B-tree Παραλλαγές  Level balanced B -trees –Global instead of local balancing strategy –Whole subtrees rebuilt when too many nodes on a level –Used when parent pointers and divide/merge operations needed  String B -trees –Used to maintain and search (variable length) strings

57 B-tree Δόμηση  In internal memory we can sort N elements in O(N log N) time using  a balanced search tree: –Insert all elements one-by-one (construct tree) –Output in sorted order using in-order traversal  Same algorithm using B-tree use I/Os –A factor of non-optimal  As discussed we could build B-tree bottom-up in I/Os –In general we would like to have dynamic data structure to use in algorithms  I/O operations

58 Δενδρικές Δομές σε Δευτερεύουσα Μνήμη Β-Δέντρο με χρόνο ενημέρωσης σταθερού κόστους χειρότερης περίπτωσης IST σε δευτερεύουσα μνήμη με σταθερό κόστος ενημέρωσης και μέσο χρόνο ψαξίματος O(log B logn) για μ-random κατανομές

59 Μοντέλο Δευτερεύουσας Μνήμης Agarwal and Vitter 1988 n=μέγεθος προβλήματος Β= μέγεθος block M=μέγεθος μνήμης Ένα Ι/Ο μετακινεί B συνεχόμενα στοιχεία από/προς δίσκο Κόστος=αριθμός Ι/Ο s To κόστος επεξεργασίας στοιχείων στην κύρια μνήμη θεωρείται μηδαμινό

60 Β-Tree Δομή Λεξικού Δευτερεύουσας Μνήμης Bayer and McReight 1972

61 Περιγραφή της Δομής Δομή δύο επιπέδων Πρώτο επίπεδο κλασσικό B-tree Δεύτερο επίπεδο, συλλογή κάδων (buckets), με κάθε κάδο να έχει μέγεθος το πολύ Ο(log 2 n) Για κάθε κάδο υπάρχει όριο κρισιμότητας. Οι ενημερώσεις γίνoνται μόνο στους κάδους, κάθε όμως O(logn) ενθέσεις επιλέγουμε το κάδο με τη μεγαλύτερη κρισιμότητα και είτε το σπάμε στα δύο ή το συγχωνεύουμε (τεχνική των Dietz και Raman 1994).

62 Δομή Χρόνος Ψαξίματος :O(log B n) Χρόνος Ενημέρωσης : O(1)

63 IST σε Δευτερεύουσα Μνήμη Ως Τ 1 χρησιμοποιούμε το νέο σταθερού χρόνου ενημέρωσης B-δέντρο. Χρήση του σταθερού χρόνου ενημέρωσης Β-δέντρου για υλοποίηση των κάδων του Τ 2 (ESA 2003). Προσαρμογή του άνω επιπέδου του Τ 2 για δευτερεύουσα μνήμη. Χρόνος Μέσης Περίπτωσης (Smooth Κατανομές) Χρόνος Χειρότερης Περίπτωσης ΧώροςΧρόνος Ενημέρωσης O(log B logn)O(log B n)O(n)O(1)

64 Αναπαράσταση Κάδων Δομή τριών επιπέδων για αναπαράσταση κάδων και ορίων κρισιμότητας, με αποδοτικό τρόπο

65 Μοντέλο Δευτερεύουσας Μνήμης Agarwal and Vitter 1988 n=μέγεθος προβλήματος Β= μέγεθος block M=μέγεθος μνήμης Ένα Ι/Ο μετακινεί B συνεχόμενα στοιχεία από/προς δίσκο Κόστος=αριθμός Ι/Ο s To κόστος επεξεργασίας στοιχείων στην κύρια μνήμη θεωρείται μηδαμινό

66 Βασίζεται στη λογική ομαδοποίηση κόμβων και προσθήκη buffers –Ενθέσεις με “lazy” τρόπο – τα στοιχεία ενθέτονται σε buffers. –Όταν ο buffer γεμίσει τα στοιχεία προωθούνται ένα επίπεδο προς τα κάτω. –Ο buffer αδειάζει σε O(M/B) I/Os  κάθε block προσπελαύνεται σταθερό αριθμό φορών σε κάθε επίπεδο  ενθέτοντας N στοιχεία (N/B blocks) κοστίζει O(N/Blog M/B N/B) I/Os. Buffer-tree Technique

67  Ορισμός: –B-tree με βαθμό εξόδου και μέγεθος φύλλων B –Μέγεθος M buffer σε κάθε εσωτερικό κόμβο  Ενημερώσεις: –Προσθήκη time-stamp για ένθεση/διαγραφή στοιχείων –Συλλογή B στοιχείων στη μνήμη πριν την ένθεση στο root buffer –Πραγματοποίησε buffer-emptying όταν γεμίσει ο buffer Basic Buffer-tree

68  Παρατήρηση: –Ο buffer μπορεί να είναι μεγαλύτερος του M κατά τη διάρκεια του αναδρομικού buffer-emptying Τα στοιχεία κατανέμονται σε σειρά διάταξης  το πολύ M στοιχεία αδιάτακτα στο buffer –Επαναζύγιση χρειάζεται όταν ο “leaf-node” buffer αδειάζει Leaf-node buffer-emptying πραγματοποιείται μόνο αφού όλοι οι πλήρως εσωτερικοί κόμβοι αδειάσουν

69 Other Buffer-tree Technique Results Attaching  (B) size buffers to normal B-tree can also be used to improve the update bound Buffered segment tree Has been used in batched range searching and rectangle intersection algorithm Has been used on String B-tree to obtain I/O-efficient string sorting algorithms

70 Summary/Conclusions: Fund. Data Structures  B-tree –O(N/B) space, O(log B N) update, O(log B N+T/B) query  Weight-balanced B-tree –Ω(w(v)) updates below v between consecutive operations on v  Persistent B-tree –Query in any previous version  Buffer tree –Batching of operations to obtain bounds


Κατέβασμα ppt "Μέθοδοι και Τεχνολογίες για Διαχείριση Μεγάλου Όγκου Δεδομένων Διδάσκοντες:Μακρής Χρήστος Διδασκαλία:Πέμπτη:"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google