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

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

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

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


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

1 Μέθοδοι και Τεχνολογίες για Διαχείριση Μεγάλου Όγκου Δεδομένων3 Διδάσκοντες:Μακρής Χρήστος e-mail: makri@ceid.upatras.grmakri@ceid.upatras.gr Διδασκαλία:Πέμπτη: 17:00-19: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 Λίστα Εργασιών ( κάθε εργασία θα βασίζεται σε ένα από τα παρακάτω papers ΚΑΙ σε σχετική με το θέμα βιβλιογραφία ) External Memory Data Structures Vitter, J. S. and Shriver, E. 1994a. Algorithms for parallel memory I: Two-level memories. Algorithmica 12, 2–3, 110–147. Vitter, J. S. and Shriver, E. A.1994b. Algorithms for parallel memory II: Hierarchical multilevel S. Lanka, E. Mays, Fully Persistent B+-trees, ACM International Conference on Management of Data, 426-435, 1992. Varman P. & Verma R. An Efficient Multiversion Access Structure. IEEE Transactions on Knowledge and Data Engineering, 391-409. 1997 B. Becker, S. Gschwind, T. Ohler, B. Seeger, P. Widmayer, An asymptotically optimal multiversion B-tree, The VLDB Journal, 264-275. P. Ferragina and R. Grossi. The string B-tree: a new data structure for string search in external memory and its applications. J. ACM, 46(2):236-280, 1999.

6 External Memory Geometric Data Structures Arge, L. 1995a. The buffer tree: A new technique for optimal I/O-algorithms. In Proceedings of the Workshop on Algorithms and Data Structures, Vol. 955 of Lecture Notes in Computer Science, Springer-Verlag, 334–345, 1995. A complete version appears as BRICS Technical Report RS–96–28, University of Aarhus. Arge, L. 1997. External-memory algorithms with applications in geographic information systems. In M. van Kreveld, J. Nievergelt, T. Roos, and P. Widmayer, eds, Algorithmic Foundations of GIS, Vol. 1340 of Lecture Notes in Computer Science, Springer-Verlag, 213–254. Arge, L. and Vahrenhold, J. I/O-efficient dynamic planar point location. In Proceedings of the ACM Symposium on Computational Geometry (June), Vol. 9, 191–200, 2000. Kanellakis, P. C.,Ramaswamy, S., Vengroff, D. E., and Vitter, J. S. 1996. Indexing for data models with constraints and classes. Journal of Computer and System Sciences 52, 3, 589–612. Arge, L. and Vitter, J. S. Optimal dynamic interval management in external memory. In Proceedings of the IEEE Symposium on Foundations of Computer Science, 1996. Arge, L., Samoladas, V., and Vitter, J. S. 1999b Two-dimensional indexability and optimal range search indexing. In Proceedings of the ACMConference Principles of Database Systems (Philadelphia, May–June), Vol. 18, 346–357, 1999.

7 Cache Oblivious Data Structures M. Frigo, C.E. Leiserson, H. Prokop, and S. Ramachandran. Cache-oblivious algorithms. In Proc. 40th IEEE Symp. on Foundations of Computer Science (FOCS 99), pages 285-297, 1999. M. A. Bender, E. Demaine, and M. Farach-Colton.“Cache Oblivious B-Trees" Proceedings of the 41st Annual Symposium on Foundations of Computer Science (FOCS), pages 399-409, 2000. Gerth Stψlting Brodal and Rolf Fagerberg, Funnel Heap – A Cache Oblivious Priority Queue, In Proc. 13th Annual International Symposium on Algorithms and Computation, volume 2518 of Lecture Notes in Computer Science, pages 219-228. Springer Verlag, Berlin, 2002 Gianni Franceschini, Roberto Grossi, J. Ian Munro, and Linda Pagli. Implicit B-trees: A New Data Structure for the Dictionary Problem. Journal of Computer and System Sciences, special issue of the 43th Annual IEEE Symposium on Foundations of Computer Science (FOCS), 2004. Gianni Franceschini and Roberto Grossi. Implicit dictionaries supporting searches and amortized updates in O(log n loglog n). In Proceedings of the 14th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 670-678. SIAM, 2003.

8 External Memory Algorithms A. Broder and M. Henzinger. Algorithmic Aspects of Information Retrieval on the Web, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. M.Najork, A. Heydon, High Performance Web Crawling, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. W. Aiello, F. Chung, L. Lu, Random Evolution in Massive Graphs. Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. O. Goldreich, Property Testing in Massive Graphs, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. R. Baeza-Yates, A. Moffat, G. Navarro, Searching Large Text Collections, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. J. Dula, F. Lopez, Data Envelopment Analysis (DEA) in Massive Data Sets, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. P. Bradley, O. Mangasarian, D. Musicant, Optimization Methods in Massive Data Sets, in Massive Data Sets, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. F. Murtagh, Clustering in Massive Data Sets, in Massive Data Sets, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. M. Riedewald, D. Agrawal, A. Abbadi, Managing and Analyzing Massive Data Sets with Data Cubes, in Massive Data Sets, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. M. Goodchild, K. Clarke, Data Quality in Massive Data Sets in Massive Data Sets, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. T. Johnson, Data Warehousing, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende. Q. Ma, M. Wang, J. Gatliker, Mining Biomolecular Data Using Background Knowledge and Artificial Neural Networks, Handbook of Massice Data Sets, ed. Abello, Pardalos, Resende.

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

10 Ιεραρχία Μνήμης Τυπικού Μηχανήματος

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

12 Η προσπέλαση στο δίσκο είναι 10 6 φορές πιο αργή από τη προσπέλαση της κύριας μνήμης –Τα συστήματα δίσκων επιχειρούν να επιμερίσουν μεγάλους χρόνους προσπέλασης μεταφέροντας μεγάλα συνεχή blocks δεδομένων (8-16Kbytes) Σημαντικό η αποθήκευση/προσπέλαση δεδομένων να εκμεταλλεύεται τις παρεχόμενες δυνατότητες ομαδοποίησης. Xαρακτηριστικά Μαγνητικού Δίσκου

13 Τυπικές Χρονικές Πολυπλοκότητες Seek Time (χρόνος εντοπισμού) 10 -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 Κόστος Εγγραφής παρόμοιο με Ανάγνωσης

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

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

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

17 Παράλληλα Υποσυστήματα Δίσκων Μη περιορισμένο παράλληλο μοντέλο (Αggarwal and Vitter 1987) Υπάρχει πολλά επίπεδα δίσκων Τα αντικείμενα ομαδοποιούνται στο δίσκο, με B αντικείμενα ανά block Οποιοδήποτε από D blocks μπορεί να γραφεί και να διαβαστεί ταυτόχρονα σε ένα I/O Παράλληλο μοντέλο δίσκου (Αggarwal and Vitter 1987) Υπάρχει μία μονάδα επεξεργασίας, μία μονάδα μνήμης και D μονάδες δίσκων D blocks μπορούν να διαβαστούν/γραφούν ταυτόχρονα, αλλά μόνο εάν βρίσκονται σε διακριτούς δίσκους Πιο ρεαλιστικό μοντέλο από το μη περιορισμένο παράλληλο μοντέλο H CPU μπορεί να είναι το σημείο αδιεξόδου εάν το D είναι αρκετά μεγάλο. Παράλληλες Ιεραρχίες Μνημών (Αggarwal and Vitter 1987) H ιεραρχίες του ίδιου τύπου (με H CPUs) συνδέονται με ένα “δίκτυο” Ο αριθμός των δίσκων D μπορεί να είναι περισσότερος, ίδιος ή μικρότερος από τον αριθμό των επεξεργαστών

18 Πολυεπίπεδες Ιεραρχίες Μνημών Hierarchical Memory Model (Aggarwal, Alpern, Chandra, Snir 1987) Υπάρχουν πολλά επίπεδα δίσκων Προσπέλαση στη θέση μνήμης x απαιτεί χρόνο f(x) Η f είναι μία αύξουσα συνάρτηση έτσι ώστε να υπάρχει σταθερά c όπου f(2x) ≤ cf(x) για κάθε x Block Transfer Model (Aggarwal, Chandra, Snir 1987 ) Υπάρχουν πολλά επίπεδα δίσκων Προσπέλαση στη θέση μνήμης x απαιτεί χρόνο f(x).Από τη στιγμή που έχει πραγματοποιηθεί προσπέλαση, επιπλέον αντικείμενα μπορούν να “εντεθούν” στο κόστος του ενός ανά αντικείμενου. Uniform Memory Hierarchies (Alpern, Carter, Feig 1990) Υπάρχει ιεραρχία μνημών εκθετικού μεγέθους Κάθε δίαυλος σχετίζεται με ένα bandwidth Όλοι οι δίαυλοι μπορεί να είναι ενεργοί ταυτόχρονα

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

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

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

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

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

24 Βασικές Τεχνικές (off-line) 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

25 Off-line Computational Geometry 1. Computer intersection of N plane segments and their trapezoidal decomposition. 2. Find all intersections between N nonintersecting red line segments and N nonintersecting blue line segments in the plane. 3. Answer Q orthogonal 2-D range queries on N points in the plane. 4. Construct the 2-D and 3-D convex hull of N points. 5. Voronoi diagram and triangulation of N points in the plane. 6. Perform Q point location queries in a planar subdivision of size N. 7. Find all nearest neighbors for a set of N points in the plane. 8. Find the pairwise intersections of N orthogonal rectangles in the plane. 9. Compute the measure of the union of N orthogonal rectangles in the plane. 10. Compute the visibility of N segments in the plane from a viewpoint. 11. Perform Q ray-shooting queries in 2-D Constructive Solid Geometry (CSG)

26

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

28 Διάταξη <M/B διατεταγμένες λίστες (ουρές) μπορούν να συγχωνευθούν σε O(N/B) I/Os Μη διατεταγμένη λίστα μπορεί να διαχωριστεί χρησιμοποιώντας <M/B στοιχεία διάσπασης σε O(N/B) I/Os

29 Διάταξη  Merge sort: –Δημιούργησε N/M memory sized διατεταγμένες λίστες –Επαναλαμβανόμενα συγχώνευσε λίστες Θ(M/B) τη φορά φάσεις με I/Os η καθεμία  Ι/Οs

30 ΔΥΝΑΜΙΚΟ HASHING Δύο κατηγορίες –Directory –Directoryless Directory –Πίνακας μεγέθους 2^d από κελιά –Τα αντικείμενα αποθηκεύονται σε κελιά ανάλογα με τα d τελευταία bits της hash διεύθυνσής τους –Κάθε κελί έχει ένα δείκτη προς το block που αποθηκεύονται τα αντικείμενα –2 Ι/Οs ανά αναζήτηση –Διάσπαση και συνένωση κελιών. Κάθε κελί έχει ένα τοπικό βάθος b. Μπορεί να μοιράζεται το ίδιο block με άλλα κελιά –Blocks κατά 67% γεμάτα Directoryless - χρησιμοποιούνται λίστες υπερχείλισης και τα blocks διασπώνται με προκαθορισμένη σειρά.

31 SPATIAL ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αποθήκευση και ερώτηση δεδομένων χώρου Δύο είδη χωρικών δομών –Data-driven Βασίζονται στο διαχωρισμό των ίδιων των αντικειμένων Π.χ R-trees, kd-trees –Space-driven Διαχωρισμός του χώρου των αντικειμένων Π.χ quad δέντρα, αρχεία grid Υβριδικές δομές –Cross tree D-διάστατη έκδοση του Β-tree Data-driven διαχωρισμός στα πάνω επίπεδα, space-driven κάτω Ερωτήσεις σε Εισαγωγές – διαγραφές σε

32 Βιβλιογραφία 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. J. Abello, P. Pardalos, M. Resende, Handbook of Massive Data Sets

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

34 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

35 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

36 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).

37 ΔΥΝΑΜΙΚΟ HASHING Δύο κατηγορίες –Directory –Directoryless Directory –Πίνακας μεγέθους 2^d από κελιά –Τα αντικείμενα αποθηκεύονται σε κελιά ανάλογα με τα d τελευταία bits της hash διεύθυνσής τους –Κάθε κελί έχει ένα δείκτη προς το block που αποθηκεύονται τα αντικείμενα –2 Ι/Οs ανά αναζήτηση –Διάσπαση και συνένωση κελιών. Κάθε κελί έχει ένα τοπικό βάθος b. Μπορεί να μοιράζεται το ίδιο block με άλλα κελιά –Blocks κατά 67% γεμάτα Directoryless - χρησιμοποιούνται λίστες υπερχείλισης και τα blocks διασπώνται με προκαθορισμένη σειρά.

38 SPATIAL ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αποθήκευση και ερώτηση δεδομένων χώρου Δύο είδη χωρικών δομών –Data-driven Βασίζονται στο διαχωρισμό των ίδιων των αντικειμένων Π.χ R-trees, kd-trees –Space-driven Διαχωρισμός του χώρου των αντικειμένων Π.χ quad δέντρα, αρχεία grid Υβριδικές δομές –Cross tree D-διάστατη έκδοση του Β-tree Data-driven διαχωρισμός στα πάνω επίπεδα, space-driven κάτω Ερωτήσεις σε Εισαγωγές – διαγραφές σε

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

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

41 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 –Η ρίζα έχει πιο πολλά από ένα παιδιά.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

59 Persistent B-tree Ένθεση 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): Διέγραψε δύο, ένθεσε μία/δύο αναφορές

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

61 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

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

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

64 Άλλες 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

65 B-tree Δόμηση Στην κύρια μνήμη μπορούμε να διατάξουμε N στοιχεία σε O(N log N) χρόνο χρησιμοποιώντας ένα ζυγισμένο δέντρο: –Ένθεσε όλα τα στοιχεία ένα προς ένα all elements (construct tree) –Παρουσίασε τα στην έξοδο σε διατεταγμένη σειρά χρησιμοποιώντας in- order διαπέραση Ο ίδιος αλγόριθμος με B-tree απαιτεί I/Os –Μη βέλτιστο κατά ένα παράγοντα Μπορούμε να χτίσουμε B-tree από κάτω προς τα άνω σε Ι/Οs Θα μας ενδιέφερε η χρήση δομής μ ε Ι/Ο κόστος ανά πράξη  λύση Buffer Tree

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 (ανάθεσε σε κάθε στοιχείο 1/B * h max credits και διατήρησε την ιδιότητα ότι 1 block ύψους h έχει h credits. Buffer-tree Τεχνική

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

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


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

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


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