1 G RUPPO 12 Luca Druda Francesco Flor Daniele Palossi P ARALLEL D ISTRIBUTED P ROCESSING OF C ONSTRAINED S KYLINE Q UERIES BY F ILTERING Bin Cui, Hua.

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Algoritmi e Strutture Dati
Pregnana Milanese Assessorato alle Risorse Economiche
/ fax
INGEGNERIA DEI PROCESSI GESTIONALI
Platos Cave and The Matrix 1. Obiettivi 2. Attività 3. Calendario 4. Setting Tecnologico 5. Ruoli 6. Valutazione A cura di Raffaele Nardella.
UNIVERSITÀ DEGLI STUDI DI PARMA
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Algoritmi e Strutture Dati
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Roma, 4 Marzo 2008 Luso di R per il calcolo delle stime e degli errori Monica Scannapieco Internalizzazione dello Sviluppo Software Diego Zardetto Software.
Fondazione ENI Enrico Mattei Master di logistica integrata 2002/2003
Process synchronization
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
Algoritmo di Ford-Fulkerson
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
eliana minicozzi linguaggi1a.a lezione2
Università di Padova Dipartimento di Ingegneria dellInformazione Analisi della Qualità del Servizio in Reti Radio Ad Hoc Special Interest Group on NEtworking.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
Progetto CRESCO S.P.III.3 Modelli e Strumenti di supporto alla Ottimizzazione e Riconfigurazione delle Reti A. Chella, G. Lo Re, A. De Paola Dipartimento.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Concetti introduttivi
Intelligenza Artificiale
Dipartimento di Economia
La struttura organizzativa e informativa del controllo
DEIS Università di Bologna
1 Informatica Grafica Daniele Marini. 2 Informazioni generali Corso in teledidattica: –Videoconferenza –Learning community Frequentare le lezioni! Cercare.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
“Alla ricerca del senso” La missione della Famiglia
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Proposta di unImplementazione per i Servizi di Localizzazione e Traffic Monitoring nellIntelligent Trasportation System Pegasus UNIVERSITÀ DEGLI STUDI.
Calcolo Parallelo e Distribuito
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Prof. Cerulli – Dott.ssa Gentili
A.a. 2009/2010 GRUPPO 20 Alessandro Ghidotti Piovan.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William.
Discovering Relative Importance of Skyline Attributes Gruppo 8 Altobelli Andrea (Relatore) Ciotoli Fabio Denis Mindolin, Jan Chomicki.
Peer-to-Peer Systems Content-Based Routing of Path Queries in Peer-to-Peer Systems Georgia Koloniari and Evaggelia Pitoura Ingargiola Salvatore Montauti.
Fondamenti delle Reti di Computer Seconda parte Carasco 15/04/2010.
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
14 marzo 2002 Avvisi:.
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
1 AUTOMATIZZAIAUTOMATIZZAIAUTOMATIZZAIAUTOMATIZZAI S.I. SISTEMASISTEMA INFORMATIVO INFORMATIVO PROCESSOPROCESSO DECISIONALE DECISIONALE DECISIONEDECISIONE.
Superfici nascoste Daniele Marini.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Pippo.
Studio degli indici per query di similarità basati su matrici di distanze Esame di Sistemi Informativi per le Decisioni L-S Presentato da: Ing. Marco Patella.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
lun mar mer gio ven SAB DOM FEBBRAIO.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Chapter 5 - Part 2 1 Procedura di sintesi  Specifiche  Formulazione – Ricavare un diagramma o una tabella di stato  Assegnazione della codifica di stato.
Progetto “IT -Implementation of the European Agenda for Adult Learning” 2012 – 2014 Ferrara 14 maggio 2013 Luisa Daniele.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
PERMESSO PERsistent MESSagging in ad hOc networks Melli Michele Matr Reti di Calcolatori LS aa 2006/07.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Business Process Management Orchestrazione di Web Service basata su standard BPEL per la realizzazione di un servizio di tour operator Università degli.
Decision Tree Based Transient Stability Method A Case Study Gruppo 10: Alessandro Gambini Michele Leoni Sistemi informativi per le decisioni LS 15 marzo.
“UNIVERSITÀ G. D’ANNUNZIO” T.aT. – Students today, citizens tomorrow - Strategie di Mobility Management nelle università: il progetto T.aT. Lanciano, 03/11/2009.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Query Optimization nei DDBMS.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Proprieta’ e caratteristiche strutturali dei sistemi.
Federico Biagi Matteo Cinti. Dal sistema centralizzato alle reti Una volta tutta la potenza elaborativa si trovava nel CED poi successivamente è stata.
Transcript della presentazione:

1 G RUPPO 12 Luca Druda Francesco Flor Daniele Palossi P ARALLEL D ISTRIBUTED P ROCESSING OF C ONSTRAINED S KYLINE Q UERIES BY F ILTERING Bin Cui, Hua Lu, Quanqing Xu, Lijiang Chen, Yafei Dai, Yongluan Zhou

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

Descrizione Query skyline distribuite Efficienza nella trasmissione dei dati sulla rete Utilizzo di rete ad alta disponibilità (rete internet)

Comparative shopping Altri esempi … Ricerca di Hotel da parte di un turista attraverso determinate preferenze Ricerca dei migliori titoli azionari su diverse borse

Scenari La maggior parte dei lavori su query skyline finora considerano storage centralizzati Inoltre si ha spesso sovrapposizione dei dati su storage multipli e distribuiti Altri lavori infine si sono soffermati su esecuzione distribuita di query ed elaborazione finale di un server centrale.

6 query risultati skyline ridotti risultati skyline completi Scenario

7 Query query risultati skyline ridotti risultati skyline completi Scenario

8 query risultati skyline ridotti risultati skyline completi Scenario

9 Skyline results query risultati skyline ridotti risultati skyline completi Scenario

10 query risultati skyline ridotti risultati skyline completi Scenario

11 Query query risultati skyline ridotti risultati skyline completi Scenario alternativo

12 query risultati skyline ridotti risultati skyline completi Scenario alternativo

13 Skyline results Scenario alternativo query risultati skyline ridotti risultati skyline completi

14 Query query risultati skyline ridotti risultati skyline completi Scenario alternativo

15 query risultati skyline ridotti risultati skyline completi Scenario alternativo

16 Skyline results query risultati skyline ridotti risultati skyline completi Scenario alternativo

17 query risultati skyline ridotti risultati skyline completi Scenario alternativo

Problemi Le strategie precedentemente menzionate incorrevano in alcuni problemi: Overhead Traffico elevato: trasmissione di dati non necessari sulla rete Tempi di risposta elevati

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

Obiettivi Minimizzare il tempo di risposta per Skyline queries distribuite (utilizzo di punti di filtraggio multipli) Sfruttamento della capacità computazionale dei vari nodi connessi tramite cavo (calcolo parallelo) Riduzione del traffico sulla rete attraverso tecniche di filtraggio dei risultati locali ai vari nodi Non essere legati a particolari reti o politiche di gestione degli overlay (es. CAN, BATON, MANET)

Partizionamento Definizione del piano di esecuzione intra-gruppo Esecuzione della query intra-gruppo con filtraggio Presentazione immediata dei risultati Processo di soluzione

Partizionamento Definizione del piano di esecuzione intra-gruppo Esecuzione della query intra-gruppo con filtraggio Presentazione immediata dei risultati Processo di soluzione

Partizionamento Definizione del piano di esecuzione intra-gruppo Esecuzione della query intra-gruppo con filtraggio Presentazione immediata dei risultati Processo di soluzione

Partizionamento Definizione del piano di esecuzione intra-gruppo Esecuzione della query intra-gruppo con filtraggio Presentazione immediata dei risultati Processo di soluzione

Algorithm PaDSkyline (S, C) Input S is the set of data sites C is the set of constraints in the skyline query Output the constrained skyline 1. s =icmpPartition (S, C) 2. for each group Sg i s in parallel 3. Send to Sg i 4. repeat 5. receive result reply from a Sg i 6. report Sg i.result 7. until all group heads have replied Partizionamento Esecuzione intragruppo Algoritmo PaDSkyline

26 query risultati skyline ridotti risultati skyline completi PaDSkyline

27 query risultati skyline ridotti risultati skyline completi Scenario alternativo

28 query risultati skyline ridotti risultati skyline completi Scenario alternativo

29 query risultati skyline ridotti risultati skyline completi Scenario alternativo

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

Minimum Bounding box Region – MBR & Reduced MBR - rMBR D1 D2 1) Creazione MBR 3) Introduzione constraint x<D1<y 2) Introduzione constraint D2>z 4) Creazione rMBR

LEMMA: legame tra incomparabilità e dominanza Se due siti S i e S j sono incomparabili rispetto ai vincoli della query per ogni coppia di punti p i rMBR i e p j rMBR j non è verificata la dominanza di p i su p j e viceversa Definizione di incomparabilità : Due sorgenti di dati (siti) S i e S j sono incomparabili rispetto ai vincoli della query se e solo se la regione dominante dell'angolo minimo del rMBR di S i non interseca l'rMBR di S j e viceversa: Partizionamento

IncomparabiliComparabili

Algorithm icmpPartition(S, C) Input: S is the set of data sites C is the set of constraints in the skyline query Output: an incomparable partition of S // Adjust MBRs and prune unqualified sites 1. for each Ki S 2. rMBRi = MBRi C; 3. if (rMBRi == Ø) S = S {Ki}; // Compute the independent partition of all relevant sites 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} icmpPartition Esempio di riferimento S = { A, B, C, D, E, F, G }

35 icmpPartition Di seguito viene mostrato come l'icmpPartition genera le partizioni: 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj A E G D B F C

36 Di seguito viene mostrato come l'icmpPartition genera le partizioni: 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj A E G D B F C icmpPartition

37 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj B A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

38 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj Ø B A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

39 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj Ø B A E G D B F C Si Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

40 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj Ø B A A E G D B F C Si INCOMPARABILI Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

41 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj Ø B A A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

42 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj Ø B A A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

43 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj Ø B A A E G D B F C A D B F C AA S1 S2 Πs Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

44 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj C A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

45 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj C A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

46 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj Ø C A E G D B F C Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

47 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj Ø C A E G D B F C A Si Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

48 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj Ø C A A E G D B F C INCOMPARABILI AA Si Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

49 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj Ø C A E G D B F C AA Si Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

50 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A},{B} } Si' S = { A, B, C, D, E, F, G } Kj Ø C B A E G D B F C AA Si COMPARABILI! Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

51 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj {B} C B A E G D B F C AA Si Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

52 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A} } Si' S = { A, B, C, D, E, F, G } Kj {B} C B A E G D B F C AA Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

53 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} 4. ΠS = {{S1}}; // S1 is the current 1st element in S 5. for each Ki S {S1} 6. Si' = Ø ; 7. for each Si ΠS 8. if ( Kj Si s.t. Kj and Ki are not incomparable) 9. ΠS = ΠS {Si}; Si' = Si' Si; 10. ΠS = ΠS {{Ki} Si'} Ki Πs { {A}, {C,B} } Si' S = { A, B, C, D, E, F, G } Kj {B} C A E G D B F C AA S1 S2 Πs Di seguito viene mostrato come l'icmpPartition genera le partizioni: icmpPartition

Continuando ad iterare fino a che non vengono esaminati tutti gli elementi di S, come è facile intuire si otterrà il seguente partizionamento: Πs = { {A}, {E,D,C,B}, {G,F} } E G D B F C A S1 S2 Πs S3 icmpPartition

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

Dopo aver ottenuto i gruppi si passa alla definizione del piano di esecuzione della query all'interno degli stessi. Un specifico piano è necessario in quanto i siti all'interno di un gruppo sono comparabili e quindi l'esecuzione della query su uno di essi dipende da o influenza un altro sito. Il piano di esecuzione può essere realizzato e definito in base a diversi criteri che ne determinano la complessità e l'efficienza. Esecuzione intragruppo

Metodi di definizione del piano di esecuzione Grafo con Distanza euclidea Grafo ottimoGrafo semplificato PROPermette di definire buoni piani di esecuzione. Sfrutta pienamente la parallelizzazione interna al gruppo. Rappresenta il miglior compromesso tra ottimalità e complessità CONTRONon riesce a sfruttare i parallelismi interni e genera solo piani sequenziali Richiede eccessiva complessità di calcolo Non sfrutta al meglio la parallelizzazione intra-gruppo.

Creazione del grafo semplificato {B,C,D,E} B C D E

B C D E B All'inizio si ha solo B, perciò lo si trasforma in un nodo Creazione del grafo semplificato {B,C,D,E}

B C D E C B Successivamente si crea il nodo C e lo si compara con B. Essendo comparabile, C diventa la root dell'albero Creazione del grafo semplificato {B,C,D,E}

B C D E C B D Successivamente si crea il nodo D e lo si compara con C. Essendo comparabile, D diventa la root dell'albero Creazione del grafo semplificato {B,C,D,E}

B C D E C B E D Successivamente si crea il nodo E e lo si compara con D. Essendo comparabile, E diventa la root dell'albero e l'algoritmo termina non essendoci più altri datasets in lista Creazione del grafo semplificato {B,C,D,E}

B C D E C B E D A questo punto il grafo viene rovesciato per avere la vera sequenza di esecuzione della query intragruppo. E quindi diviene il capogruppo. NOTA: in alcuni casi si possono avere ramificazioni che aumentano il parallelismo, introducendolo anche all'interno del gruppo. Creazione del grafo semplificato {B,C,D,E}

All'interno di ogni gruppo la query viene elaborata secondo un preciso ordine dai vari siti. Il capogruppo riceve la query, la elabora e la passa al sito successivo insieme al piano di esecuzione, al suo identificativo e ai punti di filtraggio aggiornati con gli ultimi risultati. I vari siti si passano la query e rispondono tutti al capogruppo tramite l'identificativo che viene fornito. Intra-group Algorithm

SgSg S1S1 S3S3 S2S2 S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset. Intra-group

SgSg S1S1 S3S3 S2S2 S or g Intra-group S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset.

SgSg S1S1 S3S3 S2S2 S or g Intra-group S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset.

SgSg S1S1 S3S3 S2S2 S or g Intra-group S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset.

SgSg S1S1 S3S3 S2S2 S or g Intra-group S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset.

SgSg S1S1 S3S3 S2S2 S or g Intra-group S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset.

SgSg S1S1 S3S3 S2S2 S or g Intra-group S or g = richiedente SgSg = headgroup S1S1 = sito NOTA: al fine di ottimizzare i tempi di risposta dei singoli siti si utilizza anche una precomputazione locale al sito stesso, effettuata sull'intero dataset.

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

Il tempo di risposta alla query è influenzato dal numero di byte che viaggiano nella rete. Avere a disposizione punti dominanti prima dell'esecuzione della query consente di effettuare un filtraggio locale finalizzato ad eliminare un maggior numero di falsi positivi. Una riduzione del numero di risultati ottenuti comporta un miglioramento del tempo di risposta Filtering for dummies :-)

Punti di filtraggio multipli Quanti e quali punti scegliamo?

Risultati skyline dataset A Risultati skyline dataset B La query sul dataset A fornisce i punti di filtraggio alla query su B. Si nota come qualsiasi punto che non sia p, non fornisca miglioramenti nel restringimento del risultato finale. Scegliere in questo caso più punti di filtraggio è controproducente. p Punti di filtraggio multipli Quanti e quali punti scegliamo?

Dato quindi l'insieme dei punti skyline, esistono diversi sistemi per calcolarne il subset che costituirà i punti di filtraggio: 1.Una prima scelta può essere quella di scegliere questi punti in un modo casuale (Random approach). In questo modo il calcolo non è sempre esatto, tuttavia permette di elaborare il subset in modo molto performante. 2.Una seconda scelta più oculata potrebbe invece osservare la qualità di un punto rispetto ad un altro sulla base di quanta porzione dello spazio domina. A tale scopo introduciamo un nuovo parametro, il VDR. Punti di filtraggio multipli

Dx Dz Dy P Px Pz Py c P Vincolo : Dz < c VDR: Volume of Dominating Region

Data Region 1 Data Region 2 Data Region 3 Applicando il principio di inclusione – esclusione : a b c Calcolo del fused VDR

Il Maximal Sum of VDRs fa l'assunzione che vi siano poche intersezioni e procede al calcolo dei diversi punti scegliendo quelli che hanno i volumi dominanti più grandi. Il metodo migliora l'efficacia tanto più l'intersezione è piccola Oltre a calcolare i volumi è necessario avere a disposizione un ordinamento sulla base della dimensione di questi ultimi. MaxSum

D1 D2 Scelta di due punti di filtraggio da tre punti di skyline a b c Esempio MaxSum

D1 D2 Scelta di due punti di filtraggio da tre punti di skyline a b c Area massimale Esempio MaxSum

D1 D2 Scelta di due punti di filtraggio da tre punti di skyline a b c Esempio di fallimento MaxSum

Area dominata dall'algoritmo MaxSum D1 D2 a b c Esempio di fallimento MaxSum

D1 Area dominante ottima D2 a b c Esempio di fallimento MaxSum

MaxSum semplifica il calcolo del Fused VDR ignorando le intersezioni fra le regioni. MaxDist invece tiene conto della topologia tra i punti. L'idea alla base di questa seconda euristica è che tanto maggiore è la distanza tra due punti, tanto minore sarà la probabilità che la dimensione dell'intersezione delle loro regioni dominanti sia grande. Massimizzare la somma delle distanze tra i punti MaxDist

D1 Area dominante ottima D2 a b c Uso del MaxDist sull'esempio precedente

D1 D2 a b c Esempio di fallimento MaxDist

D1 D2 a b c Esempio di fallimento MaxDist

D1 D2 a b c Esempio di fallimento MaxDist

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

I parametri di valutazione utilizzati nell'analisi dei risultati sperimentali sono: DRR: Data Reduction Rate Indica la percentuale di punti, relativi alla risposta, non inviati al capogruppo perché inutili. Response Time Indica il tempo che intercorre tra l'invio della query da parte di Sorg e la ricezione finale dei risultati Precision Rappresenta la qualità dei punti di skyline che vengono restituiti a un sito (capogruppo o originatore della query). Risultati sperimentali

Il data reduction rate viene calcolato come la proporzione tra i risultati skyline omessi (dominati dai punti di filtraggio) e i risultati totali. L'ottimo è ovviamente il caso con DRR=1 in cui i punti di filtraggio consentono di eliminare tutti i risultati di un sito o potenzialmente di non eseguire affatto la query su tale sito. DRR: Data Reduction Rate

La precisione viene calcolata come il rapporto tra i punti che un capogruppo ritorna all'originatore della query e quelli che gli giungono dai siti figli. Una precisione di valore 1 indica che il capogruppo non dovrà fare alcuna elaborazione dei risultati ottenuti prima di inviarli a S org perchè il filtraggio ha già eliminato duplicati e falsi positivi. Una precisione vicina allo zero indica che i risultati pervenuti al capogruppo non sono ottimi e quindi è necessaria elaborazione locale. A : numero di punti restituiti a Sorg B : somma dei punti giunti ai diversi Sg Precision

I seguenti risultati sono relativi ad un dataset reale (NBA Players) Le metodologie esaminate sono: Naive PaDSkyline con le euristiche: MaxSum MaxDist Random Risultati sperimentali

I risultati successivi evidenziano che un elevato numero di punti di filtraggio non contribuisce a aumentare l'efficienza. Risultati sperimentali

I grafici seguenti intendono valutare le performance al variare delle dimensioni dei siti. I risultati mostrano come al crescere delle dimensioni dei siti le euristiche scelte impattino maggiormente sulle performance: aumento di precisione e miglioramento del tempo di risposta. Risultati sperimentali

Agenda 1- Descrizione del problema 2- Proposta di soluzione e descrizione PaDSkyline 3- Partizionamento gruppi 4- Piano d'esecuzione intragruppo 5- Punti di filtraggio multipli 6- Analisi dei risultati sperimentali 7- Conclusioni

I risultati sperimentali dimostrano come la proposta sia efficiente nell'elaborazione distribuita della query (improvement computazionale). Inoltre l'algoritmo risulta scalabile sia al variare delle dimensioni (attributi) del dataset sia al variare del numero di nodi nella rete. Conclusioni