1 / 33

RICERCHE TOP-K EFFICIENTI IN SISTEMI DISTRIBUITI

RICERCHE TOP-K EFFICIENTI IN SISTEMI DISTRIBUITI. A. Vlachou C. Doulkeridis K. Nørvåg M. Vazirgiannis. Gruppo 11 Denis Billi Davide Pompeo. DEIS Università di Bologna. 20 Maggio 2010. PROBLEMA.

Download Presentation

RICERCHE TOP-K EFFICIENTI IN SISTEMI DISTRIBUITI

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. RICERCHE TOP-K EFFICIENTIIN SISTEMI DISTRIBUITI A. Vlachou C. Doulkeridis K. Nørvåg M. Vazirgiannis Gruppo 11 Denis Billi Davide Pompeo DEIS Università di Bologna 20 Maggio 2010

  2. PROBLEMA • Effettuare query top-k su un sistema altamente distribuito, sfruttando il P2P Nodi Principali (SP = Super Peers) Nodi Secondari (P = Peers)

  3. SCENARIO • I dati che si intende cercare sono divisi tra i database locali dei nodi secondari • Gli SP mantengono una cache di parte dei dati dei propri peer • Un utente può inviare una k-query ad un SP casuale (chiamato SPq) • Gli SP computano insieme il risultato della query dell’utente

  4. OBIETTIVO Soluzione: SPEERTO Skyline-basedPeertoPeerTop-K Query Processing

  5. CASO PRATICOMARIO E IL SUO KART • Mario deve andare a salvare la principessa Peach (come al solito). • Dopo 20 anni di salti e piroette a piedi, stavolta decide di usare il suo kart • Ci sono diverse strade per giungere a destinazione • Mario è un convinto ambientalista quindi il suo kart funziona a metano: i distributori sono sparsi per tutta la mappa

  6. I SUPER PEER • Mario chiede ai suoi amici (i Super Peer) un elenco delle migliori k strade secondo le sue preferenze in termini di lunghezza del percorso e numero di distributori presenti nel tragitto • La richiesta può essere effettuata ad uno qualsiasi degli SP, che ha la possibilità di consultarsi con gli altri nel caso possiedano dati migliori

  7. KSKYCOSA CONOSCE OGNI SP? • Ogni SP prepara preventivamente la lista dei “percorsi migliori" a loro conosciuti (KSKY) facendo una query ai suoi peer, gli unici possessori delle mappe dei percorsi (data objects) • I percorsi vengono ordinati in base agli scores, in questo caso L (lunghezza in decine di Km) ed N (40/ nd, dove nd è il numero di distributori sul percorso) • Nel risultato di ogni query ci sono solo i percorsi che sono dominati al massimo da K - 1 percorsi (K-Skyband) • Un percorso A “domina” un percorso B se si verificano le seguenti condizioni: • LA≤ LB • NA≤ NB • LA < LB oppure NA < NB

  8. PERCHE’ LE KSKY? • Limitano le comunicazioni tra SP e rispettivi peer, ma solo nel caso di Top-kquery con k ≤ K • nel caso che Mario chieda un numero di percorsi superiori a K ogni SP è costretto a chiedere altri dati ai suoi peer: perdita di efficienza • Nonostante tutto è buona abitudine aggiornare periodicamente la K-Skybanddi ogni SP • con il passare del tempo i peer potrebbero imparare nuovi percorsi!

  9. SKYCosa condividono gli SP • Gli SP condividono le skyline di routingobject(SKY) • Una skyline è una versione particolare di K-skyband (con K=1) in cui ogni suo dato non è dominato da nessun altro • Un routingobjectè una versione ottimizzata di data object, tale che sia molto più leggera da trasferire tra un SP e l’altro • ogni SP conosce gli oggetti appartenenti alle altre skyline, senza tuttavia possedere i veri e propri data object • ogni volta che un SP viene a conoscenza di un nuovo percorso migliore, avverte tutti gli altri

  10. PERCHE’é SKY? • Per definizione la skyline contiene la Top-1 di ogni possibile query • Per ogni oggetto trovato dalla query nello spazio dei routingobjects sappiamo che l’SP a cui appartiene contiene almeno un data object da immettere nel risultato finale • A prescindere dalla query che verrà fatta: • Sappiamo precisamente quali SP interrogare • Conosciamo la regione attiva in cui i risultati sono contenuti

  11. Algoritmo SPEERTOQuery processing on super-peer SPQ Mamma mia! 01: Input: Queryqk(f) 02: list = {∅} 03: list = SPQ.query ∪ SKYi(qk(f)) 04: threshold = f(list[k]) 05: c = 0 06: while (c < k) do 07: nextobj = list.pop() 08: if next obj is a routing object then 09: SP = nextobj.super-peer() 10: temp = SP.query(qk−c(f), threshold) 11: list.removeRoutObj(SP) 12: list.add(temp) 13: else 14: return next object to the user 15: c = c + 1 16: end if 17: threshold = f(list[k − c]) 18: end while

  12. Andiamo con ordine!

  13. PASSO 1SCELTA SPQ k=3 DK Yoshi Luigi SPq f c d g i a e h b Threshold: ? Lista risultati: { }

  14. PASSO 2LISTA RISULTATI E SOGLIA k=3 DK Yoshi Luigi SPq f c d g i a e h b Threshold: (0,5*4+0,5*2,86) = 3,43 ? Lista risultati: { } g (3; 2) h (6; 0,5) f (4; 2,86)

  15. PASSO 3DONKEY KONG CHIEDE A YOSHI k=3 Yoshi SPq f c d g i a e h b Threshold: (0,5*4+0,5*2,5) = 3,25 3,43 Lista risultati: { h (6; 0,5) f (4; 2,86) g (3; 2) g (3; 2) } (4; 2,5)

  16. PASSO 4DONKEY KONG CHIEDE A LUIGI k=2 k=3 Luigi SPq f c d g i a e h b Threshold: 3,25 h (6; 0,5) Lista risultati: { h (6; 0,5) g (3; 2) (4; 2,5) }

  17. PASSO 5ULTIMO VALORE!!! k=2 k=1 SPq f c d g i a e h b Threshold: 3,25 Lista risultati: { h (6; 0,5) (4; 2,5) } g (3; 2)

  18. POSSIAMO OTTIMIZZARESPEERTO? • E’ possibile • Ridurre i tempi di rispostaParallelQuery Processing • Ridurre i costi dovuti alla quantità di dati memorizzatiAbstract Skyline

  19. COMPUTAZIONEPARALLELA • Vogliamo poter inviare le query agli SP in modo che possano computarle in parallelo Problemi • Non possiamo aggiornare la soglia in maniera continuativa; questo può portare a dei falsi positivi Soluzione • Sfruttiamo un sistema diparallelizzazione parziale: le query in sospeso vengono inviate tutte insieme ai rispettivi SP soltanto quando si verificano determinati eventi

  20. A GRANDI LINEE… Nr: [numero di oggetti] t: [valore del massimo ro] m: (t – score(o1))/Nr 0 Nr2: (score(o2)-score(o1))/m m2: (score(o3)-score(o2))/Nr2 m': (m+m2)/2 } Resultset: { RSO1 RSO2 O3

  21. A GRANDI LINEE… Si continua fin quando |RS| ≥ k Comincia un nuovo ciclo con una nuova soglia t = t’ ed una nuova media m = m’.

  22. ABSTRACT SKYLINE • L’abstract skyline è un’approssimazione lower bound dello skyline • Dobbiamolimitare ad Uilnumeromassimodipuntichedevonoesserecontenuti in unaSKYi Come funziona? Due punti vicini dello skyline vengono sostituiti con un nuovo punto, finchè il numero totale degli oggetti è minore di U

  23. Algoritmo Abstract SkylineSkylineabstraction on super-peerSPi 01: Input: SKYi 02: p = argmax∀t∈SKYi(∑1≤i≤dln(t[i] + 1)) 03: min_dist = ∞ 04: for ((∀t ∈ SKYi) and (p ≠ t)) do 05: dist = min1≤i≤d(|p[i] − t[i]|) 06: if (dist ≤ min_dist) then 07: min_dist = dist 08: q = t 09: end if 10: end for 11: for (1 ≤ i ≤ d) do 12: r[i] = min(p[i], q[i]) 13: end for

  24. ANDIAMO CON CALMA…COSA SUCCEDE AD OGNI CICLO? • Scegliamo un punto p che ha la minore probabilità di essere dominato da tutti gli altri (quindi sostituibile più facilmente) • Questa probabilità è decisa dal maggior valore di entropia del punto: • Scegliamo un punto q che abbia distanza minima, in tutte le dimensioni, rispetto a p • Sostituiamo p e q con un nuovo punto r che ha come coordinate i valori minimi di p e q in tutte le dimensioni • I valori dominati r ma non dominati da p e q vengono cancellati E(p) = ∑ 1≤i≤dln (p[i] + 1)

  25. ABSTRACT SKYLINEVANTAGGI E SVANTAGGI • Riduce la memoria utilizzata nelle operazioni • Rende la SKY più robusta agli aggiornamenti • Non è più possibile sfruttareil concetto di soglia(aumento di query inutili tra i SP)

  26. SPEERTO IN AZIONE • I test effettuati sono stati di due tipi: • Con dati distribuiti uniformemente(uniform) • Con dati distribuiti secondo una funzione gaussiana(clustered) • Sono stati utilizzati come valori di default: • d = 4; • K = 50; • 10 ≤k ≤ 50; • n = 106; • np = 2000; • Nsp = 0.1Np

  27. SPEERTO IN AZIONETEMPI DI RISPOSTA • I tempi di risposta incrementano con il numero delle dimensioni • I risultati vengono restituiti in tempo reale

  28. SPEERTO IN AZIONECORRETTEZZA DELL’ALGORITMO • Il numero di SP contattati aumenta con k ma rimane quasi invariato con l’aumentare del numero di dimensioni • Il numero di oggetti trasferiti è circa 23 volte in meno rispetto a quelli che sarebbero effettivamente trasferiti senza l’utilizzo della soglia

  29. SPEERTO IN AZIONESCALABILITA’ • Il tempo dirispostacrescevelocementeall’aumentaredi k • Con dati clustered il numero di query che l'algoritmo deve fare agli altri SP per trovare altri valori plausibili è tendenzialmente molto più basso perchè ad ogni query vengono restituiti più data object

  30. SPEERTO IN AZIONETop-k con k>K • Sia con k»K che con d crescente, diminuisce la quantità di dati corretti per la query rispetto alla quantità di dati trovati • All’aumentare della cardinalità del dataset, la probabilità di ottenere dati sbagliati non cambia significativamente

  31. SPEERTO IN AZIONEPARALLELIZZAZIONE E ABSTRACT SKYLINE • Con d=2, 2% di dati modificati e un’astrazione del 50%, solo il 4% degli SP devono aggiornare la KSKY • Il tempo di risposta diminuisce del 20% ma il numero di oggetti trasferiti aumenta leggermente

  32. ALTERNATIVE… Non esistono alternative, l’unica via è ChuckNorris!

  33. GRAZIE!

More Related