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: Monitoraggio continuo di top-k queries su sliding windows 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 topk queries, relative agli ultimi dati arrivati Il risultato delle top-k queries viene costantemente monitorato in base ai dati più recenti Argomenti affrontati Studi precedenti Threshold Sorted List Algorithm (TSLA) Threshold Monitoring Algorithm (TMA) Skyband Monitoring Algorithm (SMA) Complessità computazionale degli algoritmi Possibili sviluppi Lavori precedenti Top-k queries 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 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 Lavori precedenti Monitoraggio continuo di k-NN queries 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 Dettagli tecnici Definizione di sliding window 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 scoring function monotona. Lo stream dati segue un modello append-only Threshold Sorted List Algorithm La struttura generale è composta da due moduli principali: Modulo di calcolo top-k Modulo di manutenzione del risultato Il Threshold Sorted List Algorithm 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. Modulo di calcolo Top-k Per il calcolo viene scelto il Threshold Algorithm, per la sua popolarità e i buoni risultati t è lo score del kesimo 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 Modulo di manutenzione del risultato Organizzazione delle strutture: Tupla scaduta p2 Update viste Update liste Lista ordinata su x1 Viste Top-k Query 1 Calcolo Top-K p.id p.x Query 2 TA FIFO Tabella di view contenente tante viste quante sono letuple queries in esame Lista Numero di tuple di sorted valide list (con parimaterializzate politica al numero disull’ordine attributi delle di arrivo) 1 Lista ordinata su x2 Query m p.x2 p.id Update liste Lista delle tuple valide p2 p3 Testa (vecchi) p4 pn Coda (recenti) Tuple in arrivo Update viste Casi di interesse Avvio di una nuova top-k query Eseguo il Threshold algorithm sui dati attualmente presenti nella sliding window Il risultato iniziale viene materializzato nella relativa top-k view, che conterrà kmax > k entries (per evitare ricalcoli e migliorare l’efficienza) Casi di interesse Arrivo di un nuovo dato Il nuovo dato viene inserito nella lista di tuple valide I suoi attributi vengono inseriti nelle sorted lists Per ogni query, viene calcolato lo score globale relativo alla scoring function Eventualmente, viene aggiornato il risultato delle top-k views e cancellato il risultato peggiore (solo se la lista dei risultati è piena) 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 sorted list 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. 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 scoring function gli attributi di p. Lo spazio da considerare per eventuali miglioramenti del risultato viene chiamato “influence region” della query in esame. x2 1 Regione di influenza (1,1) pk Linea definita da score(pk)=x1+2x2 x1 1 Proprietà geometrica Tre casi: 1. I dati arrivano fuori dalla regione di influenza: in questo caso non si fa niente 2. I dati arrivano dentro la regione di influenza: si calcola il nuovo score e si aggiorna il risultato. La influence region si rimpicciolisce. 3. I dati dentro la influence region scadono: se ci sono meno di k oggetti, si ricalcola un nuovo insieme top-k. La influence region si espande. 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. 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 sliding window che si trovano al suo interno. Questa lista rispetta l’ordine di arrivo dei punti nella sliding window. 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 scoring function f Il risultato attuale top_list N.B. Il k-esimo risultato congiunto alla scoring function f definisce implicitamente, per ogni query, la influence region. Strutture di indicizzazione e di supporto Per migliorare l’efficienza del modulo di manutenzione del risultato, ad ogni cella della griglia è associata una influence list. Tale lista è organizzata come una hash table, 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 query q appartenga alla influence list ILc significa che la influence region di q interseca la cella c Strutture di indicizzazione e supporto Threshold monitoring algorithm (TMA): modulo computazionale L’heap deve essere Si Se non crea sono un già heap e si TMA sfrutta un metodo organizzato in laordine inizializza presenti, si inseriscono con cella intelligente per decrescente di avente nell’heap tutte cellepiù scansionemax_score dellelecelle max_score alto csulle adiacenti a quella della (nell’esempio, griglia, al(ms) fine di 6,6). celle. Sitempo supponga Essendo estratta presente ridurre (nell’esempio, ill’unica di ms(c )>ms(c cnell’heap, c6,5 ) viene elaborazione 6,5)estratta, 5,6 e 5,6 p’ domina la regione blu e processata alla ricerca p’’ la regione di domina punti validi da azzurra inserire nella top_list p’ c4,6 c5,6 p c6,6 p’’ c5,5 Heap c5,6 6,6 c6,5 c6,5 Threshold monitoring algorithm (TMA): modulo computazionale A mano a mano che le celle vengono visitate, la top_list della query si riempie e le influence list 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. Threshold monitoring algorithm (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: 1. Le tuple in Pins arrivano dentro la influence region di qualche query, e i punti in Pdel non sono migliori dei nuovi entrati 2. I punti in Pins non cadono dentro la influence region, e i punti in Pdel vengono eliminati dalla influence region. Caso 1 La region cambia con nuovo (si riduce). Tuttavia, le Perinfluence ogni cosa cella aggiornata, si ilin controllano le queries contenute nelle prima processo i punti Pins (Pinserimento 3 e P4) influence list appartengono più alla influence region influence list:delle seappartenente locelle scoreche deinon nuovi punti è migliore del peggiore della Pernon ciascun punto a P ,vengono aggiunte delle entries nelle ins vengono aggiornate lista, il punti nuovodelle arrivato viene celle inserito nella top_list di quella querydalle e il liste di rispettive (P -> c , P -> c ) eliminati 5,6 top_list, 4 4,6 perciò vengono I punti in viene Pdel rimosso non fanno più parte3 della peggiore celle. semplicemente eliminati dalle celle Pins = {P3, P4} Pdel = {P1, P2} x2 p2 p4 p3 p1 x1 Caso 2 La query rimossa dalla influence list delle celle che non Siano Pinsin=esame Pdi P3viene = Ppoi La rimozione porta 5 eP del 3 al ricalcolo totale della soluzione top-k. Il fanno più parte della nuova influence region. L’aggiornamento viene Partendo da Pmigliore poiché lorimaste score di modifica P5 non migliore di quello nuovo punto trovato, P4,nell’heap influence region ins, dalle effettuato partendo celle cheèla precedentemente non attuale, il punto viene semplicemente inserito nella cella corrispondente alla query (si espande). erano state aggiornate, aggiungendo di volta in volta ad una lista le celle corrispondente adiacenti all’ultima aggiornata Pins = {P5} Pdel = {P3} x2 p4 p3 p5 x1 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? Skyline e Skyband: proprietà geometrica Skyline queste la linea informazioni che contiene in tutti punti che SeDefinisco rappresentiamo un i grafico, si compaiono nel risultato di una top-1 query qualunque (con ottiene la figura seguente scoring function monotona) La skyband èscore una generalizzazione del concetto di skyline. 1 Una k-skyband è pla regione contenente tutti i punti p dominati al più da k-1 punti Dato un insieme di tuplep (ad esempio quelle delle sliding p windows) di numero contenuto, pè sempre possibile, per ogni tupla, calcolare lo score globale e tenere traccia del suo istante di arrivo. p p Essendo la lista di tuple valide organizzata con politica p FIFO, l’ordine di scadenza delle tuple coincide con l’ordine Tempo di di arrivo scadenza 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 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 kskyband queries è indipendente dalla dimensione delle tuple. Skyband Monitoring Algorithm (SMA) SMA sfrutta la riduzione a k-skyband query per migliorare l’efficienza del modulo di manutenzione Introduciamo il concetto di dominance counter 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 scoring function della query in esame, quindi cambia con essa. 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 dominance counter 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 balanced tree (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 balanced tree eliminati. 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. Caso 1 Arrivo di un nuovo dato dominante: All’istante nel sistema Paggiorna P3,iriportati PDC Inizialmente, la skyband è composta daiquindi punti Il modulo 3,dientra manutenzione 9, che domina 7 e Pdi 5 questi punti, vengono eliminati dalla skyband (se (i cui DC sonoche tra parentesi). DC ≥ K) score p2 (0) p9 p3 (0) (2) (1) p5 (0) (1) p7 (2) (1) tempo 0 1 2 3 4 5 6 7 Caso 2 Scadenza di uno dei dati nella skyband Poiché i rimanenti datiPdella skyband escono dal sistema All’istante 5, ilmanutenzione punto Il modulo di provvede ad eliminare P2 2 scade dopo skyband P2 (non sono dominati da esso), non è necessario dalla alcun aggiornamento dei DC score p2 (0) p9 (0) p5 (1) tempo 0 1 2 3 4 5 6 7 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 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 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 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 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)) 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)) 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 influence region; si riduce, inoltre, la necessita di spazio di memoria 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 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 Valutazioni sperimentali Tempo di elaborazione al variare di d Tempo di elaborazione al variare di N Valutazioni sperimentali Tempo di elaborazione al variare di r Tempo di elaborazione al variare di Q Valutazioni sperimentali Tempo di elaborazione al variare di k Spazio richesto al variare di k 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 Threshold query 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. 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 Grazie per l’attenzione Vota gruppo 19!