1 / 50

Continuous Monitoring of Top-k Queries over Sliding Windows

Continuous Monitoring of Top-k Queries over Sliding Windows. Kyriakos Mouraditis , Spiridon Bakiras , Dimitris Papadias Enrico Bergamini , Enrico Grassi. Gruppo 19. Introduzione. Ciò che sappiamo: Soluzione di top-k queries su database convenzionali Ciò che vogliamo fare:

bella
Download Presentation

Continuous Monitoring of Top-k Queries over Sliding Windows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ContinuousMonitoringofTop-kQueriesoverSliding Windows KyriakosMouraditis, SpiridonBakiras, DimitrisPapadias Enrico Bergamini, Enrico Grassi Gruppo 19

  2. Introduzione • Ciò che sappiamo: • Soluzione di top-k queries su database convenzionali • Ciò che vogliamo fare: • Monitoraggio continuo di top-k queries su sliding windows

  3. Scenario di riferimento • ISP che vuole monitorare pacchetti di dati attraverso dei router • I dati sono immagazzinati su un server centrale, e sono sempre disponibili • Sul server centrale si ha un numero consistente di top-k queries, relative agli ultimi dati arrivati • Il risultato delle top-k queries viene costantemente monitorato in base ai dati più recenti

  4. Argomenti affrontati • Studi precedenti • ThresholdSortedListAlgorithm (TSLA) • ThresholdMonitoringAlgorithm (TMA) • SkybandMonitoringAlgorithm (SMA) • Complessità computazionale degli algoritmi • Possibili sviluppi

  5. Lavori precedenti • Top-kqueries con dati provenienti da più sorgenti: • I dati provengono da diverse fonti, ma sono statici • Viene eseguita una query per volta • Noi vogliamo: • Potere eseguire più queries contemporaneamente • Potere lavorare su dati dinamici

  6. Lavori precedenti • Monitoraggio di una top-k query distribuita: • È basato su più fonti, e in questo caso i dati sono dinamici • Viene eseguita una sola query • Si ha molto overhead sulla rete • Noi vogliamo: • Operare su una singola fonte multidimensionale • Lavorare contemporaneamente su più queries • Minimizzare il tempo di calcolo lato server

  7. Lavori precedenti • Monitoraggio continuo di k-NNqueries • Efficacia della struttura a griglia per memorizzare le tuple e le celle da vedere nel caso dell’arrivo di nuovi dati • C’è una relazione tra le top-k queries e lo skyline. Verrà utilizzata per ottimizzare uno degli algoritmi proposti • Noi vogliamo: • Utilizzare le strutture di memorizzazione proposte in questo lavoro per risolvere top-k queries in modo efficiente

  8. Dettagli tecnici • Definizione di slidingwindow • Count-based: dimensione della finestra limitata da un numero prefissato di dati • Time-based: i dati al suo interno sono validi per una durata di tempo prefissata • Per mantenere limitato il tempo, i dati relativi alle sliding windows sono memorizzati in memoria centrale e indicizzati tramite una griglia regolare. • Le queries hanno scoringfunction monotona. • Lo stream dati segue un modello append-only

  9. ThresholdSortedListAlgorithm • La struttura generale è composta da due moduli principali: • Modulo di calcolo top-k • Modulo di manutenzione del risultato Il ThresholdSortedListAlgorithm definisce un framework generico per la realizzazione di metodi più efficienti. Questo algoritmo sfrutta lavori precedenti, componendo moduli diversi per fornire un approccio risolutivo naïve.

  10. Modulo di calcolo Top-k • Per il calcolo viene scelto il ThresholdAlgorithm, per la sua popolarità e i buoni risultati t è lo score del k-esimo oggetto nel top-k set. Un dato che non supera questa soglia non farà mai parte dei k oggetti migliori. TA si ferma quando questa regione contiene almeno k punti “buoni” almeno quanto t... … e nessun punto in questa regione è migliore di t

  11. Modulo di manutenzione del risultato Organizzazione delle strutture: Tupla scaduta Update viste p2 Update liste Lista ordinata su x1 Viste Top-k Query 1 Calcolo Top-K p.x1 Tabella di view contenente tante viste materializzate quante sono le queries in esame Lista di tuple valide (con politica FIFO sull’ordine di arrivo) Numero di sortedlist pari al numero di attributi delle tuple p.id Query 2 TA Lista ordinata su x2 Query m p.x2 p.id Update liste Lista delle tuple valide Update viste p2 p4 p3 pn Tuple in arrivo Coda (recenti) Testa (vecchi)

  12. Casi di interesse Avvio di una nuova top-k query • Eseguo il Thresholdalgorithm sui dati attualmente presenti nella slidingwindow • Il risultato iniziale viene materializzato nella relativa top-k view, che conterrà kmax > k entries (per evitare ricalcoli e migliorare l’efficienza)

  13. Casi di interesse Arrivo di un nuovo dato • Il nuovo dato viene inserito nella lista di tuple valide • I suoi attributi vengono inseriti nelle sortedlists • Per ogni query, viene calcolato lo score globale relativo alla scoringfunction • Eventualmente, viene aggiornato il risultato delle top-k views e cancellato il risultato peggiore (solo se la lista dei risultati è piena)

  14. Casi di interesse Scadenza di un risultato • Viene rimosso il vecchio dato dalla lista delle tuple valide • Vengono rimossi gli attributi corrispondenti al dato rimosso dalle sortedlist • Eventualmente, viene rimosso il dato scaduto dai risultati delle queries Qualora la rimozione della vecchia tupla porti alla riduzione del numero di risultati di una query al di sotto del valore k, il modulo di calcolo top-k deve essere rieseguito dall’inizio per ristabilire un nuovo risultato di almeno k oggetti.

  15. Proprietà geometrica Consideriamo, senza perdita di generalità, uno spazio unitario bidimensionale. Una query risolta restituisce un insieme di k tuple. Preso il k-esimo elemento p, è sempre possibile definire una linea di separazione sostituendo nella scoringfunction gli attributi di p. Lo spazio da considerare per eventuali miglioramenti del risultato viene chiamato “influenceregion” della query in esame. x2 1 (1,1) Regione di influenza pk Linea definita da score(pk)=x1+2x2 x1 1

  16. Proprietà geometrica • Tre casi: • I dati arrivano fuori dalla regione di influenza: in questo caso non si fa niente • I dati arrivano dentro la regione di influenza: si calcola il nuovo score e si aggiorna il risultato. La influenceregion si rimpicciolisce. • I dati dentro la influenceregionscadono: se ci sono meno di k oggetti, si ricalcola un nuovo insieme top-k. La influenceregion si espande.

  17. Strutture di indicizzazione e di supporto I dati devono risiedere in memoria centrale La gestione degli R-tree sarebbe computazionalmente onerosa, quindi si preferisce utilizzare un’altra struttura: una griglia regolare. La griglia è costituita da un array di celle quadrate di dimensione prefissata d Per ogni tupla p e ogni attributo xi di p, si calcola  xi/d . Questi numeri rappresentano le coordinate della cella della griglia che conterrà p.

  18. Strutture di indicizzazione e di supporto È inoltre necessaria una lista di punti validi organizzata con politica FIFO sul tempo di arrivo. Questa lista rappresenta le sliding windows. Ogni cella della griglia regolare possiede una lista di punti validi contenente i puntatori ai punti della slidingwindow che si trovano al suo interno. Questa lista rispetta l’ordine di arrivo dei punti nella slidingwindow.

  19. Strutture di indicizzazione e di supporto • Le varie queries di interesse sono memorizzate in una tabella. Per ogni query si tiene traccia di: • Un id univoco • Il numero k di risultati richiesto • La scoringfunction f • Il risultato attuale top_list N.B. Il k-esimo risultato congiunto alla scoringfunction f definisce implicitamente, per ogni query, la influenceregion.

  20. Strutture di indicizzazione e di supporto Per migliorare l’efficienza del modulo di manutenzione del risultato, ad ogni cella della griglia è associata una influencelist. Tale lista è organizzata come una hashtable, che utilizza come chiave l’id delle query. Questa scelta è motivata dalla necessità di aggiornare rapidamente le informazioni relative alla regione di influenza di ogni cella per ogni query. Il fatto che una queryq appartenga alla influencelistILc significa che la influenceregion di q interseca la cella c

  21. Strutture di indicizzazione e supporto

  22. Thresholdmonitoringalgorithm (TMA): modulo computazionale L’heap deve essere organizzato in ordine decrescente di max_score (ms) sulle celle. Si supponga ms(c5,6)>ms(c6,5) p’ domina la regione blu p’’ domina la regione azzurra Si crea un heap e si inizializza con la cella avente max_score più alto (nell’esempio, c6,6). Essendo l’unica presente nell’heap, viene estratta, e processata alla ricerca di punti validi da inserire nella top_list Se non sono già presenti, si inseriscono nell’heap tutte le celle adiacenti a quella estratta (nell’esempio, c5,6 e c6,5) TMA sfrutta un metodo intelligente per la scansione delle celle della griglia, al fine di ridurre il tempo di elaborazione c6,6 p’ p c5,6 c4,6 p’’ c5,5 c6,5 Heap c6,6 c5,6 c6,5

  23. Thresholdmonitoringalgorithm (TMA): modulo computazionale • A mano a mano che le celle vengono visitate, la top_list della querysi riempie e le influencelist delle celle vengono aggiornate con i riferimenti alle queries in esame • Il modulo computazionale termina semplicemente una volta che la top_list raggiunge i k elementi. • Alla fine del processo, nell’heap rimangono delle celle in cui max_score è minore o uguale al peggiore risultato presente nella top_list. Questo fatto verrà sfruttato dal modulo di manutenzione. N.B. questo metodo è estendibile per dimensioni crescenti, tenendo a mente che nel caso peggiore, ad ogni estrazione corrisponde l’inserimento di un numero di celle pari alla dimensione.

  24. Thresholdmonitoringalgorithm (TMA): modulo di manutenzione Tipicamente, nel nostro sistema, ad istanti non noti, un insieme di tuple Pins arriva e un insieme Pdel scade. Gli scenari più interessanti sono due: • Le tuple in Pins arrivano dentro la influenceregion di qualche query, e i punti in Pdelnon sono migliori dei nuovi entrati • I punti in Pinsnon cadono dentro la influenceregion, e i punti in Pdel vengono eliminati dalla influenceregion.

  25. Caso 1 • Per ogni cella aggiornata, si controllano le queries contenute nelle influencelist: se lo score dei nuovi punti è migliore del peggiore della lista, il nuovo arrivato viene inserito nella top_list di quella query e il peggiore viene rimosso • La influenceregion cambia con il nuovo inserimento (si riduce). Tuttavia, le influencelist delle celle che non appartengono più alla influenceregion non vengono aggiornate • I punti in Pdel non fanno più parte della top_list, perciò vengono semplicemente eliminati dalle celle Per prima cosa processo i punti in Pins (P3 e P4) Per ciascun punto appartenente a Pins,vengono aggiunte delle entries nelle liste di punti delle rispettive celle (P3 -> c5,6 , P4 -> c4,6) eliminati dalle celle. Pins = {P3, P4} Pdel = {P1, P2} x2 p4 p3 p2 p1 x1

  26. Caso 2 La query in esame viene poi rimossa dalla influencelist delle celle che non fanno più parte della nuova influenceregion. L’aggiornamento viene effettuato partendo dalle celle rimaste nell’heap che precedentemente non erano state aggiornate, aggiungendo di volta in volta ad una lista le celle adiacenti all’ultima aggiornata Siano Pins = P5 e Pdel = P3 Partendo da Pins, poiché lo score di P5 non è migliore di quello attuale, il punto viene semplicemente inserito nella cella corrispondente La rimozione di P3 porta al ricalcolo totale della soluzione top-k. Il nuovo punto migliore trovato, P4, modifica la influenceregion corrispondente alla query (si espande). Pins = {P5} Pdel = {P3} x2 p4 p3 p5 x1

  27. Problema Il ricalcolo totale (oneroso dal punto di vista computazionale) si ha quando uno dei punti che scadono fa parte della top_list di una query, e nessuno dei nuovi arrivi ha uno score migliore del punto appena scaduto. Come risolverlo?

  28. Skyline e Skyband: proprietà geometrica • Definisco Skyline la linea che contiene tutti i punti che compaiono nel risultato di una top-1 query qualunque (con scoringfunction monotona) • La skyband è una generalizzazione del concetto di skyline. Una k-skyband è la regione contenente tutti i punti dominati al più da k-1 punti • Dato un insieme di tuple (ad esempio quelle delle sliding windows) di numero contenuto, è sempre possibile, per ogni tupla, calcolare lo score globale e tenere traccia del suo istante di arrivo. • Essendo la lista di tuple valide organizzata con politica FIFO, l’ordine di scadenza delle tuple coincide con l’ordine di arrivo • Se rappresentiamo queste informazioni in un grafico, si ottiene la figura seguente score p1 1 p2 p3 p4 p5 p6 p7 p8 Tempo di scadenza 0 7 6 1 5 4 2 3

  29. Skyline e Skyband: proprietà geometrica • Introduciamo quindi un nuovo concetto di dominanza tra tuple: una tupla p1 domina una tupla p2 se e solo se p1 ha uno score maggiore di p2 e scade dopo p2 • L’osservazione importante è che i dati appartenenti alla k-skyband nello spazio score/time sono quelli che fanno effettivamente parte dei risultati finali delle queries. Inoltre, la riduzione da top-k queries a k-skybandqueries è indipendente dalla dimensione delle tuple.

  30. SkybandMonitoringAlgorithm (SMA) • SMA sfrutta la riduzione a k-skybandquery per migliorare l’efficienza del modulo di manutenzione • Introduciamo il concetto di dominancecounter DC: esso rappresenta, per ogni tupla, il numero di tuple che dominano (secondo la definizione vista) la tupla in esame nello spazio time/score • Il DC serve per escludere dalla k-skyband i punti che sono dominati da almeno altri k punti • Si noti che il DC è relativo alla scoringfunction della query in esame, quindi cambia con essa.

  31. SMA: modulo computazionale • Per prima cosa, per ogni query viene applicato il modulo computazionale di TMA • Il risultato viene memorizzato in una lista skyband che contiene k entries del tipo <id, score, DC>, ordinata per valori decrescenti di score • Successivamente, SMA calcola, per ciascun punto nella skyband di ogni query, il dominancecounter

  32. SMA: modulo computazionale • Per efficienza del tempo di calcolo, il tempo di arrivo di ogni tupla processata ed appartenente alla skyband viene memorizzato in un balancedtree (in ordine decrescente) • In questo modo, il DC di ogni tupla è semplicemente il numero di tuple che lo precedono nel B-tree • Ciascun nodo interno contiene la cardinalità del suo sottoalbero: tempo di calcolo O(k logk) • I DC così calcolati vengono inseriti nella skyband, e i balancedtreeeliminati.

  33. SMA: modulo di manutenzione • Il modulo di manutenzione tiene traccia dell’arrivo di tutti i dati (anche quelli non contenuti nello skyband) e della loro scadenza, aggiornando contestualmente la struttura dati già presentata per TMA. • In più, gestisce i DC in modo da ottimizzare l’aggiornamento dei risultati, evitando ricalcoli onerosi. • Osserviamone il funzionamento attraverso due esempi chiave.

  34. Caso 1 Arrivo di un nuovo dato dominante: All’istante 3, entra nel sistema P9, che domina P3, P7e P5 Inizialmente, la skyband è composta dai punti riportati (i cui DC sono tra parentesi). Il modulo di manutenzione aggiorna quindi i DC di questi punti, che vengono eliminati dalla skyband (se DC ≥ K) score p2 (0) p9 tempo (0) p3 (2) (1) 0 3 1 5 2 7 6 4 p5 (0) (1) p7 (2) (1)

  35. Caso 2 Scadenza di uno dei dati nella skyband All’istante 5, il punto P2 scade Il modulo di manutenzione provvede ad eliminare P2 dalla skyband Poiché i rimanenti dati della skyband escono dal sistema dopo P2 (non sono dominati da esso), non è necessario alcun aggiornamento dei DC score p2 (0) p9 p5 (1) tempo (0) 5 2 1 0 3 6 4 7

  36. Ancora sul modulo di manutenzione • Il modulo di manutenzione memorizza l’arrivo di tutti i dati, ma considera le sole tuple con score maggiore del k-esimo elemento di ogni skyband per l’aggiornamento del risultato • Tali tuple aggiornano la skyband nella posizione data dal loro score. I DC degli eventuali dati a score inferiore devono quindi essere incrementati di una unità • Qualora i DC di qualche dato raggiungano il valore k, questi devono essere rimossi dalla skyband

  37. Ancora sul modulo di manutenzione • Quando un dato scade, siamo certi che nessun altra tupla della skyband sia più dominata da esso. Perciò, non è necessario l’aggiornamento di alcun DC • Un caso particolare si ha quando la skyband contiene meno di k tuple • SOLO in questo caso, il modulo di manutenzione richiama il modulo computazionale per avere una nuova skyband

  38. Analisi delle performance • Assumendo che: • La cardinalità media dei dati in ogni istante sia N • Le tuple siano distribuite uniformemente in uno spazio unitario d-dimensionale • Lo stream rate sia in media di r tuple per ogni ciclo di processo • ogni cella della griglia contiene in media N∙δd punti, dove δ rappresenta la dimensione di una singola cella lungo un asse • Sia inoltre C=O(k/(N∙δd)) il numero medio di celle processate

  39. Analisi delle performance • La complessità temporale del modulo computazionale usato sia da TMA che da SMA è Tcomp= O(C∙logC+|C|∙logk) dove |C| indica il numero di punti nelle celle processate

  40. Analisi delle performance: TMA • Siano: • Q il numero delle queries di interesse • Prrec la probabilità che dopo gli aggiornamenti il risultato debba essere ricalcolato ex-novo • La complessità temporale totale sarà: TTMA = O(r + Q∙(C∙r∙δd + k∙r∙logk/N + Prrec∙Tcomp)) La memoria richiesta sarà: STMA = O(N∙(d+1)+Q∙(C+d+2∙k))

  41. Analisi delle performance: SMA • Siano: • Q il numero delle queries di interesse • La complessità temporale totale sarà: TSMA = O(r + Q∙(C∙r∙δd + k2∙r/N)) La memoria richiesta sarà: SSMA = O(N∙(d+1)+Q∙(C+d+3∙k))

  42. Analisi delle performance: considerazioni • In generale, SMA è più veloce, ma occupa più memoria. Tuttavia, se Prrec è molto piccolo, TMA è più efficiente. Questa evenienza è comunque piuttosto rara • L’efficienza di entrambi i metodi dipende da k, Q, N ed r, e dalla dimensione δ delle celle: celle grandi minimizzano il tempo necessario alle operazioni di heap, ma portano a processare punti esterni alla influenceregion; si riduce, inoltre, la necessita di spazio di memoria

  43. Valutazioni sperimentali • I test sono stati effettuati con i seguenti parametri, variandone uno per volta e mantenendo gli altri al valore di default: • La macchina utilizzata per le simulazioni disponeva di un processore Pentium IV a 3,2 GHz e di 1 GB di memoria RAM

  44. Valutazioni sperimentali • Il benchmark di uso comune per queste applicazioni prevede due fasi di testing, una su dati indipendenti (IND), l’altra su dati anticorrelati (ANT). • Mentre per i primi i valori degli attributi sono scelti in modo uniformemente indipendente, i secondi prevedono la presenza di un attributo dominante fra tutti

  45. Valutazioni sperimentali Tempo di elaborazione al variare di d Tempo di elaborazione al variare di N

  46. Valutazioni sperimentali Tempo di elaborazione al variare di r Tempo di elaborazione al variare di Q

  47. Valutazioni sperimentali Tempo di elaborazione al variare di k Spazio richesto al variare di k

  48. Possibili modifiche e scenari alternativi • Monitoraggio di top-k query con vincoli sugli attributi: è sufficiente modificare gli algoritmi per tenere conto della regione di interesse • Thresholdquery che richede il monitoraggio di tutti i punti al di sopra della soglia: è possibile usare TSL, con le liste al posto degli heap (ordine di visita irrilevante) • Monitoraggio di top-k queries su uno stream che prevede l’eliminazione esplicita dei dati: è impossibile usare SMA perché richiede di conoscere in anticipo l’ordine di scadenza dei dati. Nessun problema, invece, con TMA.

  49. Conclusioni • Dall’analisi sperimentale si nota come SMA sia il più veloce tra i metodi proposti al variare dei parametri del problema, a discapito di una lieve maggiorazione dello spazio occupato • Possibili lavori futuri potrebbero trattare la risoluzione di queries con funzioni di preferenza non monotone. Gli autori suggeriscono il possibile impiego di ragionamenti geometrici per una risoluzione efficiente di questo problema

  50. Grazie per l’attenzione Vota gruppo 19!

More Related