SEMANTIC DATA CACHING AND REPLACEMENT Paper By: Shaul Dar, Michael J. Franklin, Bjorn Jonsson, Divesh Srivastava, Michael Tan Appeared: VLDB conference 1996 Presented by: Βασίλης Φωτόπουλος
Agenda 1. Data-Shipping Architectures & Caching 2. Architectures for Cache managements i. Page Caching (page servers) ii. Tuple Caching (object servers) 3. Semantic Caching Model i. Example ii. iii. Semantic Regions Replacement Issues
Caching σε Data-Shipping Architecture Data-Shipping αρχιτεκτονική είναι ένα clientserver DB σύστημα στο οποίο μεγάλο μέρος της ερώτησης εκτελείται στην πλευρά του client. Copies από data μεταφέρονται από τον server προς τον client για να μπορεί ο client να εκτελέσει το query. (fault-driven client-server interaction). Γιαναμειώσουμετοresponse time (interactions with server) η cache management strategy που θα ακολουθήσουμε στην πλευρά του client είναι ένα θέμα.
Agenda 1. Data-Shipping Architectures & Caching 2. Architectures for Cache managements 1. Page Caching (page servers) 2. Tuple Caching (object servers) 3. Semantic Caching Model 1. Example 2. Semantic Regions 3. Replacement Issues
Page Caching (I) Queries υποβάλλονται και γίνονται processing από τον client. Αν μια requested page δεν υπάρχει local στην cache o client υποβάλλει ένα request στον server για την συγκεκριμένη page (faulting-based). O server κάνει retrieve την page από τον δίσκο του και την επιστρέφει στον client. Στην ουσία ο μηχανισμός είναι παρόμοιος με αυτόν που συναντάμε σε έναν traditional page-based database buffer manager.
Page Caching (II) H cached unit είναι page που είναι ένα σύνολο από tuples. (statically grouping of tuples) Το interaction με τον server είναι faulting-based. Η cache replacement policy που μπορεί να ακολουθήσει κάνει exploit τόσο Temporal Locality (π.χ LRU) Spatial Locality Μια replacement value ανατίθεται για κάθε page αυτό που γίνεται evict είναι μια page.
Tuple Caching Όμοιο με το Page caching μόνο που εδώ το cached unit είναι tuple (object) και όχι pages. Σε σχέση με το Page caching προσθέτει ένα storage overhead της cache. (π.χεδώαποθηκεύω replacement value per tuple και όχι per page). Η cache replacement policy κάνει exploit την temporal locality.
Agenda 1. Data-Shipping Architectures & Caching 2. Architectures for Cache managements 1. Page Caching (page servers) 2. Tuple Caching (object servers) 3. Semantic Caching Model 1. Example 2. Semantic Regions 3. Replacement Issues
Semantic Cache H cache είναι χωρισμένη σε Semantic Regions που κάθε μια είναι ένα σύνολο από tuples. Κάθε semantic region περιγράφεται από: Μια constrain formula (V) που περιγράφει τις tuples της region. Cache replacement value. Όταν μια query Q υποβάλλεται στον client σπάει σε 2 disjoint pieces: Probe query P(Q,V), που γίνεται collect μέρος των results από data που βρίσκονται στην cache του client. Remainder query R(Q,V), που στέλνεται στο server για να επιστρέψει τα εναπομείναντα results της query.
Example Q: SELECT * FROM Employ WHERE Sal>50,000 AND Age <= 30 V 1 = (Sal <100,000 OR (Age >=25 AND Age<=28)) P(Q 1,V 1 ) =((Sal>50,000 AND Sal<100,000 AND Age<=30) OR (Sal>50,000 AND Age>=25 AND Age <= 28)) ------------------------------------------------- R(Q 1,V 1 ) =((Sal>=100,000 AND Age <=25) OR (Sal>=100,000 AND Age>28 AND Age <=30))
Merging Semantic Regions Αν κάνω merging 2 regions που έχουν την ίδια replacement value τότε θα οδηγήσω την cache να αποτελείται από λίγες, αλλά πιθανώς μεγάλες σε size regions. Με λίγες σε πλήθος regions δεν έχω μεγάλο overhead σε storage cost. (++) Με μεγάλες όμως ως προς το πλήθος των tuples regions υπάρχει κακή διαχείριση της cache στο replacement (έρχεται μια μικρή πετάω μια μεγάλη). (--) Κάνω merging 2 regions αν: 1. Έχουν την ίδια replacement value KAI 2. Μία από τις 2 region έχει size < 1% του μεγέθους της cache
Replacement Issues (Recency of Usage)
Replacement Issues (Recency of Usage)
Replacement Issues (Recency of Usage)
Replacement Issues (Semantic Distance) Σε κάθε region ανατίθεται μια replacement value που είναι η αρνητική τιμή της Manhattan distance της region (central of gravity) με την most recent query (central of gravity). Ανεξάρτητα από το πότε δημιουργήθηκε κάθε region αν είναι κοντά στα ποιο πρόσφατα queries, ήτοι τα κάνει και εν μέρει resolve, αποκτάει μεγαλύτερο value και ποιο δύσκολα βγαίνει από την cache αν απαιτηθεί χώρος.
Semantic Distance (Ι)
Semantic Distance (ΙΙ)
Semantic Distance (ΙΙΙ)