Data Stream Summarization to Avoid Overlap

Σχετικά έγγραφα
Αξιοποίηση της συσχέτισης μεταξύ λέξεων για τη βελτίωση του προσεγγιστικού φιλτραρίσματος πληροφορίας

Detecting Duplicates over Distributed Data Sources. Δημήτρης Σουραβλιάς

A Method for Creating Shortcut Links by Considering Popularity of Contents in Structured P2P Networks

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Δίκτυα Υπολογιστών I Εργαστήρια

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Αριθμητική Ανάλυση & Εφαρμογές

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Query-Driven Indexing for Scalable Peer-to-Peer Text Retrieval. Gleb Skobeltsyn, Toan Luu, Ivana Podnar Zarko, Martin Rajman, Karl Aberer

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

Επερωτήσεις σύζευξης με κατάταξη

Αντισταθμιστική ανάλυση

Δομές Δεδομένων και Αλγόριθμοι

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Σχολή Μηχανικής και Τεχνολογίας. Πτυχιακή διατριβή

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Επεξεργασία και δρομολόγηση XML ερωτήσεων σε συστήματα ομότιμων κόμβων

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Supplementary Materials for Evolutionary Multiobjective Optimization Based Multimodal Optimization: Fitness Landscape Approximation and Peak Detection

Σήματα και Συστήματα ΙΙ

Κεφάλαιο 10 Ψηφιακά Λεξικά

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Συστήματα Αναμονής (Queuing Systems)

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Δίκτυα Υπολογιστών Εργαστήρια

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

Computing. Νοέμβριος Έκδοση 1.0

Standard Template Library (STL) C++ library

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εισαγωγή στον Προγραμματισμό

Κτίρια nζεβ και προσομοίωση με την χρήση του energy+

3. Προσομοίωση ενός Συστήματος Αναμονής.

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

Towards a more Secure Cyberspace

Κατανεμημένα Συστήματα Ι

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Άσκηση 2. Αν συμβούν 2 duplicate ACKs αντί για timeout τι γίνεται σε αυτή την περίπτωσή;

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

ΠΑΡΑΡΤΗΜΑ Δ Σύντομη παρουσίαση του DATA STUDIO

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Αλγόριθμοι Ταξινόμησης Μέρος 4

Χρόνοι Μετάδοσης και Διάδοσης

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

HELECO 05. Αθανάσιος Νταγκούµας, Νίκος Λέττας, ηµήτρης Τσιαµήτρος, Γρηγόρης Παπαγιάννης, Πέτρος Ντοκόπουλος

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Πρότυπο FDDI. Fiber Distributed Data Interface. Ενότητα : Τοπικά Δίκτυα υψηλών επιδόσεων. Διδακτική Ενότητα. Εκπαιδευτής : Σαλαβασίδης Κ.

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

Δεδομένων. Μοναστηρίου 7, Άγιος Στέφανος. Tηλ.: Φαξ: Website:

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Δομές Δεδομένων Εργαστηριακή Άσκηση Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο gkogkos@ceid.upatras.gr. Εισαγωγικά:

Προσδιορισµός Παραθύρων σε Ρεύµατα εδοµένων

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

Δέντρα Απόφασης (Decision(

Κατανεμημένα Συστήματα. Javascript LCR example

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 8: ΈλεγχοςΡοήςΑνοικτούΒρόχου Φώτης Βαρζιώτης

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

Αλγόριθμοι και Πολυπλοκότητα

Transcript:

Data Stream Summarization to Avoid Overlap Δημήτρης Σουραβλιάς Τμήμα Πληροφορικής, Πανεπιστήμιο Ιωαννίνων dsouravl@cs.uoi.gr Abstract In this paper, we focus on approximately detecting duplicate data elements over the w most recent ones in a distributed data stream environment, so that, only distinct and recent elements are delivered. To achieve this, we propose a novel solution based on a randomized data structure, Sliding Bloom Filter that is used to summarize data streams over sliding windows concisely. We run a number of experiments to evaluate the performance of the proposed solution. The results demonstrate that our structure yields low false positive error rates. Keywords: duplicate detection, sliding window, bloom filter. 1. Εισαγωγή Σε ένα τυπικό σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ), η εξάλειψη διπλότυπων τιμών από τα αποτελέσματα μιας επερώτησης αποτελεί σημαντική λειτουργία. Για το πρόβλημα αυτό οι αλγόριθμοι που έχουν προταθεί [Garcia-Molina et.al (2000)] θεωρούν ότι το σύνολο των δεδομένων μπορεί να αποθηκευτεί και να ανακτηθεί. Για την ανίχνευση των διπλότυπων, συνήθως, γίνονται αρκετές προσπελάσεις στα δεδομένα, τα οποία θεωρείται ότι παραμένουν αμετάβλητα. Ωστόσο, η υπόθεση αυτή παύει να ισχύει σε ένα σύστημα ροής δεδομένων (Data Stream System). Μια ροή δεδομένων ορίζεται ως μια πραγματική, συνεχής και διατεταγμένη ακολουθία δεδομένων. Σε ένα τέτοιο σύστημα είναι αδύνατο να γνωρίζουμε τη σειρά με την οποία θα έρθουν τα δεδομένα ή να αποθηκεύσουμε εξ ολοκλήρου τη ροή δεδομένων. Λόγω του μεγάλου όγκου των δεδομένων ροής που καταφθάνουν, μια συνηθισμένη τακτική είναι να διατηρούνται συνόψεις επί το σύνολο των δεδομένων, που έχουν εμφανιστεί μέχρι την τρέχουσα χρονική στιγμή. Ωστόσο, σε αρκετές εφαρμογές, τα δεδομένα που έχουν φτάσει πρόσφατα θεωρείται ότι περιέχουν περισσότερο ωφέλιμη πληροφορία. Για το λόγο αυτό έχει προταθεί το μοντέλο κυλιόμενου παραθύρου (sliding window model). Στο μοντέλο αυτό, λαμβάνονται υπόψη μόνο τα w πιο πρόσφατα δεδομένα που έχουν φτάσει στο σύστημα. Έτσι, το σύνολο των δεδομένων της ροής αντιπροσωπεύεται από τα w πιο πρόσφατα δεδομένα.

Η ανίχνευση διπλότυπων τιμών σε ένα τέτοιο σενάριο συνεχής μεταβολής των δεδομένων αποτελεί ενδιαφέρον θέμα για πολλές εφαρμογές που σχετίζονται με συστήματα πραγματικού χρόνου, δίκτυα αισθητήρων και συστήματα έκδοσης/συνδρομής. Η παρούσα εργασία ασχολείται με την προσεγγιστική ανίχνευση διπλότυπων τιμών στα w πιο πρόσφατα δεδομένα που εμφανίζονται και παράγονται από κατανεμημένες ροές δεδομένων. Ένα παράδειγμα που μπορεί να θεωρηθεί έναυσμα για την εργασία αυτή είναι τα δεδομένα που παράγονται από ένα δίκτυο αισθητήρων. Οι αισθητήρες είναι συσκευές που χαρακτηρίζονται από περιορισμένη υπολογιστική, αποθηκευτική και ενεργειακή δυνατότητα. Επιπροσθέτως, τα δεδομένα σε κάθε αισθητήρα καταφθάνουν με τη μορφή μιας αδιάλειπτης, ανεξάρτητης και κλιμακούμενης ταχύτητας ροής δεδομένων. Η εξάλειψη διπλότυπων τοπικά σε κάθε αισθητήρα, σε πραγματικό χρόνο, φαίνεται να αποτελεί καλή ιδέα για την εξοικονόμηση των απαραίτητων πόρων λειτουργίας. Η δομή της εργασίας είναι η εξής: Στο εδάφιο 2 παρουσιάζουμε το θεωρητικό υπόβαθρο της εργασίας. Στο εδάφιο 3 παρουσιάζουμε το πρόβλημα, τη δομή δεδομένων που χρησιμοποιούμε και την προσέγγιση μας για την ανίχνευση διπλότυπων. Στη συνέχεια, στο εδάφιο 4, υπάρχουν τα αποτελέσματα των πειραμάτων. Τέλος, στο εδάφιο 5 βρίσκονται τα συμπεράσματα και η μελλοντική εργασία. 2. Υπόβαθρο 2.1 Bloom φίλτρα Το Bloom φίλτρο, το οποίο προτάθηκε στο [Bloom (1970)], είναι μια πιθανοκρατική δομή δεδομένων. Χρησιμοποιείται για να εξεταστεί εάν ένα στοιχείο ανήκει ή δεν ανήκει σε ένα σύνολο δεδομένων. Ένα Bloom φίλτρο BF k,m χρησιμοποιεί k ανεξάρτητες συναρτήσεις κατακερματισμού h 1, h 2,, h k και έναν μονοδιάστατο πίνακα Τ μεγέθους m, στον οποίο αποθηκεύονται δυαδικά ψηφία (bits). Έστω S = {x 1, x 2,, x n } ένα σύνολο που αποτελείται από n στοιχεία. Ο στόχος είναι να αναπαραστήσουμε το σύνολο S χρησιμοποιώντας το Bloom φίλτρο BF k,m. Αρχικά, τα m δυαδικά ψηφία του πίνακα T αρχικοποιούνται στην τιμή 0. Έπειτα, κάθε συνάρτηση κατακερματισμού εφαρμόζεται στο στοιχείο x i S, i {1, 2,.., n}. Τα δυαδικά ψηφία στις θέσεις h 1 (x i ), h 2 (x i ),, h k (x i ), i {1, 2,..., n} θέτονται στο 1 (Εικόνα 1). Στη συνέχεια, δοθέντος ενός στοιχείου y και της BF k,m αναπαράστασης του συνόλου S, θα θέλαμε να εξετάσουμε εάν το στοιχείο y ανήκει στο σύνολο S. Κατακερματίζουμε το στοιχείο y k φορές και ελέγχουμε εάν h i (y) = 1, i {1,, k}. Εξετάζουμε, δηλαδή, εάν οι k από τις m θέσεις του πίνακα Τ, στις οποίες κατακερματίστηκε το στοιχείο y, έχουν ήδη τεθεί στην τιμή 1.

Εικόνα 1. Εισαγωγή των {d1, d2} σε ένα αρχικά άδειο Bloom φίλτρο BF 3, 15. Στην περίπτωση που τουλάχιστον μία από τις k θέσεις του πίνακα T έχει τιμή 0, τότε το στοιχείο y δεν υπάρχει στο BF k,m και συμπερασματικά δεν ανήκει στο σύνολο S. Συνεπώς, τα Bloom φίλτρα δεν προκαλούν false negatives. Εάν οι k θέσεις του T έχουν τιμή 1, τότε το στοιχείο y ανήκει στο σύνολο S με μια πιθανότητα σφάλματος ε BLOOM. Αυτό μπορεί να συμβεί στην περίπτωση που οι k θέσεις στις οποίες έχει κατακερματιστεί το y, έχουν τεθεί στην τιμή 1 από άλλα στοιχεία που έχουν κατακερματιστεί στο φίλτρο πριν το y. Το ποσοστό των false positives σε ένα Bloom φίλτρο, το οποίο αναπαριστά n στοιχεία, χρησιμοποιώντας k συναρτήσεις κατακερματισμού και έναν πίνακα Τ μεγέθους m, δίνεται από τον τύπο [Broder et.al (2004)]: k kn 1 - kn/m ε BLOOM = 1-1 - ( 1 - e m 2.2 Το μοντέλο ροής δεδομένων ) (1) Μια ροή δεδομένων S ορίζεται ως μια πραγματικού χρόνου, συνεχής και διατεταγμένη ακολουθία δεδομένων S = {d 1, d 2,..., d n, }. Στο μοντέλο ροής δεδομένων, όπως περιγράφεται στο [Babcock et.al (2002)], η ανάκτηση δεδομένων δεν είναι δυνατή μέσω προσπελάσεων στην κύρια μνήμη ή σε δευτερεύουσα μέσα αποθήκευσης. Τα δεδομένα δεν παραμένουν αμετάβλητα, αλλά φτάνουν στο σύστημα μέσω μίας ή περισσότερων συνεχών ροών δεδομένων. Ένα παραδοσιακό σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ) δεν είναι σχεδιασμένο για τη διαχείριση δεδομένων που παράγονται από συνεχείς ροές μεγάλης ταχύτητας. Τη διαχείριση τέτοιων χρονικά ευαίσθητων δεδομένων αναλαμβάνει ένα σύστημα διαχείρισης ροών δεδομένων (ΣΔΡΔ) [Babcock et.al (2002)]. Το σύστημα αυτό παρουσιάζει δύο νέα χαρακτηριστικά για να αντιμετωπιστεί η αδιάλειπτη παραγωγή δεδομένων: τις προσεγγιστικές απαντήσεις και την προσαρμοστικότητα. k

Μια ροή δεδομένων έχει, συνήθως, απεριόριστο μέγεθος. Ο διαθέσιμος αποθηκευτικός χώρος στο σύστημα σε σύγκριση με το μέγεθος μιας ροής δεδομένων είναι περιορισμένος. Για το λόγο αυτό, χρησιμοποιούνται προσεγγιστικές περιληπτικές δομές δεδομένων για την αποθήκευση ροών δεδομένων. Η χρήση τέτοιων δομών δεδομένων (στη βιβλιογραφία αναφέρονται και ως συνόψεις) έχει σαν αποτέλεσμα επερωτήσεις, που θέτονται στα δεδομένα της ροής, να απαντώνται προσεγγιστικά. Όσον αφορά την προσαρμοστικότητα του συστήματος διαχείρισης, η προσαρμογή σε παράγοντες που μεταβάλλονται, όπως η αυξομείωση του ρυθμού παραγωγής δεδομένων σε μία ή περισσότερες ροές, είναι το ζητούμενο. Επιπροσθέτως, η επί πραγματικό χρόνο παρακολούθηση των ροών αποκαλύπτει έναν ακόμη στόχο: την άμεση αντίδραση του συστήματος σε ασυνήθιστες τιμές δεδομένων. 2.3 Το μοντέλο κυλιόμενου παραθύρου Σε αρκετές εφαρμογές επεξεργασίας ροών δεδομένων, τα πρόσφατα δεδομένα θεωρούνται μεγαλύτερης σημασίας από αυτά που κατέφθασαν κάποια προγενέστερη χρονική στιγμή. Ένας τρόπος για να αγνοήσουμε παλαιότερα δεδομένα και να εστιάσουμε μόνο σε πρόσφατα, είναι το μοντέλο κυλιόμενου παραθύρου (sliding window model). Στο μοντέλο αυτό, που προτάθηκε στο [Datar et.al (2002)], κάθε δεδομένο μπορεί να φτάσει οποιαδήποτε χρονική στιγμή. Τη στιγμή της άφιξης λέμε ότι εισάγεται σε ένα κυλιόμενο παράθυρο μεγέθους w. Αυτό υποδηλώνει ότι το δεδομένο λήγει μετά την άφιξη w νέων δεδομένων. Παραθέτουμε έναν ορισμό της έννοιας του κυλιόμενου παραθύρου. ΟΡΙΣΜΟΣ 1: Κυλιόμενο παράθυρο μεγέθους w ονομάζουμε μια διατεταγμένη λίστα που αποτελείται από w δεδομένα και συμβολίζουμε με W = {d 1, d 2,, d w }. Το στοιχείο d i προηγείται του d i+1 στο παράθυρο, αν και μόνο αν, κανένα άλλο στοιχείο της ροής δεν έφτασε μεταξύ αυτών, δηλαδή d, τέτοιο ώστε, tarr di < tarr d < tarr di+1, όπου tarr di ο χρόνος άφιξης του στοιχείου d i. Για παράδειγμα, έστω η ροή δεδομένων S = {d 1, d 2, d 3,..., d n, } με χρόνους άφιξης των δεδομένων της tarr d1 < tarr d2 < tarr d3 <... < tarr dn και ένα κυλιόμενο παράθυρο μεγέθους w = 2. Το πρώτο παράθυρο W 1 έχει μόνο το {d 1 } και για το δεύτερο ισχύει W 2 = {d 1, d 2 }. Όταν φθάσει το d 3, τότε το δεδομένο με τον παλαιότερο χρόνο άφιξης του τωρινού παραθύρου W 2, δηλαδή το d 1, αγνοείται και στο παράθυρο εισέρχεται το d 3. Οπότε, W 3 = {d 2, d 3 } (Εικόνα 2).

Εικόνα 2. Ένα κυλιόμενο παράθυρο μεγέθους w = 2. 3. Ανίχνευση διπλότυπων δεδομένων 3.1 Ανίχνευση διπλότυπων δεδομένων σε κυλιόμενα παράθυρα Θεωρούμε μία αδιάλειπτη ροή δεδομένων S = {d 1, d 2,..., d n, } και ένα πεδίο ορισμού D = {v 1, v 2,..., v n }. Κάθε στοιχείο d j παίρνει τιμές στο σύνολο D. Στόχος μας είναι η ανίχνευση w-διπλότυπων δεδομένων σε μια συνεχή ροή δεδομένων S. Θα θέλαμε να αποφύγουμε την προώθηση της ίδιας τιμής πολλές φορές. Συγκεκριμένα, θα θέλαμε σε κάθε παράθυρο μεγέθους w, ο χρήστης να λαμβάνει δεδομένα με μοναδικές τιμές. Ένα στοιχείο d j χαρακτηρίζεται ως w-διπλότυπο, αν και μόνο αν, έχει ήδη προωθηθεί ως μοναδικό στα w-1 πιο πρόσφατα δεδομένα. ΟΡΙΣΜΟΣ 2: Έστω S = {d 1, d 2,..., d n, } μια ροή δεδομένων. To στοιχείο d i S, i w, χαρακτηρίζεται ως w-διπλότυπο, αν και μόνο αν, για κάποιο j, 1 j w 1, το στοιχείο d i-j S είναι τέτοιο ώστε (α) d i-j = d i και (β) το d i-j έχει προωθηθεί ως μοναδικό. Για την προσέγγισή μας θα χρησιμοποιήσουμε τη δομή του Sliding Bloom φίλτρου, που εισάγουμε στην παράγραφο 3.2. Το Sliding Bloom φίλτρο θα χρησιμοποιηθεί για τη διατήρηση περιλήψεων για τα δεδομένα που βρίσκονται εντός ενός κυλιόμενου παραθύρου μεγέθους w. Θέλουμε, ιδανικά, να εξετάζουμε αν ένα δεδομένο τη χρονική στιγμή που καταφθάνει στο τρέχον κυλιόμενο παράθυρο είναι διπλότυπο. Αν συμβαίνει κάτι τέτοιο, τότε το εξαλείφουμε, έτσι ώστε μόνο μοναδικά και πρόσφατα δεδομένα να προωθούνται. Η εξάλειψη αυτή σημαίνει όχι μόνο ότι δεν το προωθούμε αλλά και ότι δεν το αποθηκεύουμε στο Sliding Bloom φίλτρο. Βέβαια, η απόφαση για το αν ένα δεδομένο είναι w-διπλότυπο ή όχι γίνεται με μια πιθανότητα σφάλματος. Η πιθανότητα αυτή είναι ουσιαστικά η πιθανότητα ύπαρξης false positives στο Sliding Bloom φίλτρο, δηλαδή η πιθανότητα ένα δεδομένο να ανιχνεύεται ως w-διπλότυπο, ενώ στην πραγματικότητα να είναι μοναδικό. Η διαδικασία ανίχνευσης w-διπλότυπων παρουσιάζεται στον Αλγόριθμο 1, που παρατίθεται πιο κάτω.

3.2 Το Sliding Bloom φίλτρο Το κύριο μειονέκτημα του κλασικού Bloom φίλτρου είναι ότι δεν υποστηρίζει αποδοτικά τη λειτουργία διαγραφής στοιχείων που έχουν εισαχθεί σε αυτό. Σε ένα περιβάλλον που δεδομένα διαρκώς μεταβάλλονται, η ιδέα να αποθηκευτούν αυτά σε Bloom φίλτρα φαίνεται να μην επαρκεί. Για παράδειγμα, όταν δεδομένα εισέρχονται και εξέρχονται από ένα κυλιόμενο παράθυρο μεγέθους w, θα θέλαμε να διατηρήσουμε την περίληψη μόνο των δεδομένων που βρίσκονται εντός του παραθύρου. Γι αυτό στο [Fan et.al (2000)] προτείνεται μια νέα δομή δεδομένων, το Sliding Bloom φίλτρο (SBF). Το Sliding Bloom φίλτρο αποτελεί επέκταση του κλασικού Bloom φίλτρου. Η ιδέα στην οποία βασίζεται είναι η εξής: Αντί να διατηρούμε μόνο έναν πίνακα Τ m δυαδικών ψηφίων ανά Bloom φίλτρο, κρατάμε ακόμη έναν πίνακα μετρητών C διάστασης m. Ουσιαστικά διατηρούμε έναν μετρητή ανά δυαδικό ψηφίο. Όταν ένα νέο στοιχείο εισέρχεται στο παράθυρο, τότε το κατακερματίζουμε σε k θέσεις του πίνακα Τ, όπως συμβαίνει στο κλασικό Bloom φίλτρο. Επιπλέον, αρχικοποιούμε τους μετρητές στις αντίστοιχες k θέσεις του πίνακα C στην τιμή w-1, όπου w το μέγεθος του κυλιόμενου παραθύρου. Κάθε φορά που ένα νέο στοιχείο εισέρχεται, μειώνουμε όλους τους μετρητές του πίνακα C κατά 1. Αυτό το κάνουμε για να μοντελοποιήσουμε την κύλιση κατά 1 που συμβαίνει στο κυλιόμενο παράθυρο. Τη χρονική στιγμή που n από τους μετρητές του πίνακα C μηδενιστούν, μηδενίζονται και οι αντίστοιχες n τιμές των δυαδικών ψηφίων του πίνακα T. Τα δεδομένα που είχαν κατακερματιστεί στα δυαδικά ψηφία που μηδενίστηκαν θεωρούνται ότι βρίσκονται εκτός του κυλιόμενου παραθύρου. ΠΡΟΤΑΣΗ 1: Το Sliding Βloom φίλτρο δεν προκαλεί false negatives. ΑΠΟΔΕΙΞΗ: Θεωρούμε ένα κυλιόμενο παράθυρο μεγέθους w και έστω d ένα στοιχείο εντός του κυλιόμενου παραθύρου. Είναι προφανές ότι οι k μετρητές που αντιστοιχούν στο d δεν έχουν μηδενιστεί. Οπότε, τα αντίστοιχα k δυαδικά ψηφία του d δεν έχουν μηδενιστεί. ΠΡΟΤΑΣΗ 2: Το Sliding Βloom φίλτρο, που αναπαριστά κυλιόμενο παράθυρο μεγέθους w, χρησιμοποιεί k συναρτήσεις κατακερματισμού και πίνακα εξόδου διάστασης m, έχει σε κάθε παράθυρο στη χείριστη περίπτωση ποσοστό false positives, που δίνεται από τον τύπο: k kw 1 - kw/m ε SL_BLOOM 1-1 - ( 1 - e m ) (2) ΑΠΟΔΕΙΞΗ: Η απόδειξη είναι προφανής αν θέσουμε στον τύπο (1), όπου n το w, δηλαδή το πλήθος των δεδομένων στο παράθυρο. k

Αλγόριθμος 1: Ανίχνευση w-διπλότυπων σε μια ροή δεδομένων S. Input: A Sliding Bloom Filter that uses k hash functions, m output bits and summarizes a window of size w. Output: A sequence of true/false whether the upcoming data element is unique or not. 1: initialize Sliding Bloom Filter bit array T to 0 2: initialize Sliding Bloom Filter counter array C to 0 3: for each d stream S i 4: check k bits in T[h 1(d i)], T[h 2 (d i )],..., T[h k (d i )] 5: if all k bits are 1 then 6: isunique := false 7: else 8: isunique := true 9: end if 10: decrease all counters in C by 1 11: for i:=0 to m 12: if C[i] <= 0 then 13: T[i]:= 0 14: C[i]:= 0 15: end if 16: end for 17: if (isunique = true) then 18: set C[h (d )], C[h 2 (d i )],..., C[h k (d i )] at w-1 1 i 19: set T[h 1 (d i )], T[h 2 (d i )],..., T[h k (d i )] at 1 20: end if 21: print (isunique) 22: end for 3.3 Ανίχνευση διπλότυπων σε κατανεμημένες ροές δεδομένων Εικόνα 3. Το κατανεμημένο σύστημα ανίχνευσης διπλότυπων. Έστω S 1, S 2,..., S N N κατανεμημένες ροές δεδομένων. Αυτό που θέλουμε να πετύχουμε είναι η προώθηση μοναδικών και πρόσφατων δεδομένων στο σύνολο των δεδομένων που παράγουν οι κατανεμημένες ροές. Σε πρώτο βήμα, στοχεύουμε στην εξάλειψη των w-διπλοτύπων τοπικά, έτσι ώστε από κάθε ροή να προωθούνται μόνο μοναδικά δεδομένα. Στη συνέχεια, κάθε μοναδικό δεδομένο που προωθείται, θεωρούμε ότι καταφθάνει σε κάποιον κεντρικό κόμβο με τη μορφή μιας αδιάλειπτης ροής δεδομένων S c. Για την ανίχνευση των w-διπλοτύπων τοπικά, θεωρούμε ότι σε

κάθε κατανεμημένη ροή S i υπάρχει ένα Sliding Bloom φίλτρο (SBF) για παράθυρο μεγέθους w i. Επιπλέον, στην κεντρική ροή S c υπάρχει ένα Sliding Bloom φίλτρο για παράθυρο μεγέθους w c (Εικόνα 3). 4. Πειραματική αξιολόγηση Ο πηγαίος κώδικας για τα πειράματα προσομοίωσης έγινε σε Java. Για τα πειράματα χρησιμοποιήσαμε συνθετικά σύνολα δεδομένων. Θεωρήσαμε ότι τα δεδομένα κάθε ροής παίρνουν τιμές ομοιόμορφα από ένα πεδίο ορισμού D. Πειραματιστήκαμε σε ένα σύστημα που τα δεδομένα φθάνουν μέσω μίας ροής δεδομένων και σε ένα κατανεμημένο σύστημα ροών δεδομένων. Αυτό που μετρήσαμε κυρίως είναι το ποσοστό εμφάνισης false positives. Η μετρική που χρησιμοποιήσαμε είναι o ρυθμός false διπλότυπων (false duplicate rate) που ορίζεται ως εξής: # of false duplicate data false duplicate rate = # of true distinct data Στον Πίνακα 1 παρουσιάζονται οι συνολικές παράμετροι των πειραμάτων. Σε οποιοδήποτε από τα πειράματα, αν κάποια από τις παραμέτρους αυτές μεταβάλλεται, αναφέρεται ρητά. Πίνακας 1. Οι παράμετροι των πειραμάτων. Παράμετρος Τιμή # δεδομένων ροής 10000 μέγεθος παραθύρου 500 #δυαδικών ψηφίων/bloom 768 # συναρτήσεων κατ/μού 4 # διακριτών τιμών 100 πεδίο ορισμού δεδομένων [0,99] Στα Πειράματα 1,2 και 3 θεωρούμε ότι τα δεδομένα έρχονται στο σύστημα μέσω μιας αδιάλειπτης ροής δεδομένων. Χρησιμοποιούμε ένα Sliding Bloom φίλτρο για τη διατήρηση των προσεγγιστικών περιλήψεων εντός ενός κυλιόμενου παραθύρου. Πείραμα 1: Το ποσοστό false διπλότυπων συναρτήσει του μεγέθους του φίλτρου. Παρατηρούμε ότι όσο αυξάνεται το πλήθος των δυαδικών ψηφίων του φίλτρου, τόσο μειώνεται ο ρυθμός των false διπλότυπων (Εικόνα 4). Αυτό συμβαίνει λόγω της μείωσης των συγκρούσεων, καθώς το μέγεθος του χώρου κατακερματισμού αυξάνεται Πείραμα 2 και 3: Το ποσοστό false διπλότυπων συναρτήσει του μεγέθους του παραθύρου και του πλήθους των διακριτών τιμών δεδομένων. Στο Πείραμα 2 το φίλτρο χρησιμοποιεί 512 δυαδικά ψηφία. Παρατηρούμε ότι όσο αυξάνεται το μέγεθος του παραθύρου, αυξάνεται ελάχιστα ο ρυθμός εμφάνισης false (3)

διπλότυπων (Εικόνα 4). Διαισθητικά, αυτό συμβαίνει, γιατί ο ρυθμός false διπλότυπων εξαρτάται από το πλήθος των διακριτών τιμών των δεδομένων και όχι από το πλήθος των δεδομένων εντός του κυλιόμενου παραθύρου. Τη διαίσθηση αυτή επιβεβαιώνει το Πείραμα 3, όπου όσο αυξάνεται το πλήθος των διακριτών τιμών, αυξάνεται το ποσοστό των false διπλότυπων (Εικόνα 5). Εικόνα 4. Οι γραφικές παραστάσεις των Πειραμάτων 1 και 2. Πείραμα 4: Το ποσοστό του κέρδους σε μηνύματα λόγω χρήσης φίλτρων στις κατανεμημένες ροές συναρτήσει του μεγέθους του παραθύρου. Θεωρούμε ότι τα δεδομένα εισέρχονται στο σύστημα μέσω 5 κατανεμημένων ροών δεδομένων. Σε κάθε κατανεμημένη ροή μπορούμε να έχουμε ή όχι Sliding Βloom φίλτρα. Εάν έχουμε, τότε τοπικά σε κάθε ροή εξαλείφουμε τα διπλότυπα δεδομένα κι έτσι λιγότερα δεδομένα προωθούνται στο κεντρικό φίλτρο. Οπότε, έχουμε μείωση των μηνυμάτων-δεδομένων που προωθούνται τελικά στο χρήστη. Το τίμημα της προσέγγισης αυτής είναι ο αποθηκευτικός χώρος που απαιτείται για το φίλτρο της κάθε ροής. Αυτό που μετρήσαμε στο Πείραμα 4 είναι το ποσοστό του κέρδους που θα έχουμε σε πλήθος μηνυμάτων, εάν έχουμε ή όχι Sliding Bloom φίλτρα στις κατανεμημένες ροές, για διάφορα μεγέθη παραθύρων. Όπως παρατηρούμε στην Εικόνα 4, όσο αυξάνεται το μέγεθος του παραθύρου, τόσο αυξάνεται το κέρδος αυτό, γιατί τόσο μεγαλύτερη είναι η τοπική εξάλειψη διπλότυπων δεδομένων. Εικόνα 5. Οι γραφικές παραστάσεις των Πειραμάτων 3 και 4.

5. Συμπεράσματα Σήμερα, η πραγματικού χρόνου παρακολούθηση ροών δεδομένων έχει αναδειχθεί σε σημαντικό ερευνητικό πρόβλημα για τον τομέα της διαχείριση ροών δεδομένων. Στην παρούσα εργασία ασχοληθήκαμε με την προσεγγιστική ανίχνευση διπλότυπων τιμών στα w πιο πρόσφατα δεδομένα, τα οποία παράγονται από κατανεμημένες ροές δεδομένων. Προτείναμε μία νέα λύση που βασίζεται στο Sliding Bloom φίλτρο, για την διατήρηση περιλήψεων δεδομένων μέσα σε ένα κυλιόμενο παράθυρο. Επιπροσθέτως, προτείναμε ένα μοντέλο για την ανίχνευση διπλότυπων σε κυλιόμενα παράθυρα σε ένα περιβάλλον κατανεμημένων ροών δεδομένων. Σαν μελλοντική εργασία, θα ήταν ενδιαφέρον, να ερευνηθεί περισσότερο η σημασιολογία σχετικά με την ανίχνευση διπλότυπων τιμών δεδομένων σε κυλιόμενα παράθυρα. Σημαντική είναι ακόμη, η ανάπτυξη ιδεών για την ανίχνευση σχεδόν διπλότυπων τιμών (near duplicates) σε ένα σύστημα κατανεμημένης παραγωγής δεδομένων. Ευχαριστίες Η παρούσα εργασία έγινε υπό την επίβλεψη της Αναπληρώτριας Καθηγήτριας Ευαγγελίας Πιτουρά, την οποία θα ήθελα να ευχαριστήσω για την ουσιαστική συνεισφορά της. Αναφορές 1. Babcock B., Babu S., Datar M., Motwani R. and Widom J. (2002), Models and Issues in Data Stream Systems, in Proceedings of PODS. 2. Bloom B. (1970), Space/time Tradeoffs in Hash Coding with Allowable Errors, Communications of the ACM, vol. 13, no. 7, pages 422-426. 3. Broder A and Mitzenmacher M. (2004), Network Applications of Bloom Filters: A Survey, Internet Mathematics, vol. 1, no. 4, pages 485-509. 4. Datar M., Gionis A., Indyk P. and Motwani R. (2002), Maintaining Stream Statistics over Sliding Windows, in Proceedings of the 13 th ACM SIAM Symposium on Discrete Algorithms, pages 635-644. 5. Fan L., Cao P., Almeida J., Broder A. Z. (2000), Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol, IEEE/ACM Transactions on Networking vol. 8, no. 3, pages 281-293. 6. Garcia-Molina H., Ullman J.D. and Widom J. (2000), Database System Implementation, Prentice Hall. 7. Metwally A., Agrawal D and Abbadi A. E. (2005), Duplicate Detection in Click Streams, in Proceedings of WWW.