La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

1 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

2 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

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

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

5 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 6 query risultati skyline ridotti risultati skyline completi Scenario

7 7 Query query risultati skyline ridotti risultati skyline completi Scenario

8 8 query risultati skyline ridotti risultati skyline completi Scenario

9 9 Skyline results query risultati skyline ridotti risultati skyline completi Scenario

10 10 query risultati skyline ridotti risultati skyline completi Scenario

11 11 Query query risultati skyline ridotti risultati skyline completi Scenario alternativo

12 12 query risultati skyline ridotti risultati skyline completi Scenario alternativo

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

14 14 Query query risultati skyline ridotti risultati skyline completi Scenario alternativo

15 15 query risultati skyline ridotti risultati skyline completi Scenario alternativo

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

17 17 query risultati skyline ridotti risultati skyline completi Scenario alternativo

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

19 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

20 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)

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

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

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

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

25 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 26 query risultati skyline ridotti risultati skyline completi PaDSkyline

27 27 query risultati skyline ridotti risultati skyline completi Scenario alternativo

28 28 query risultati skyline ridotti risultati skyline completi Scenario alternativo

29 29 query risultati skyline ridotti risultati skyline completi Scenario alternativo

30 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

31 Minimum Bounding box Region – MBR & Reduced MBR - rMBR D1 D2 1) Creazione MBR 3) Introduzione constraint xz 4) Creazione rMBR

32 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

33 IncomparabiliComparabili

34 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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

54 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

55 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

56 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

57 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.

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

59 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}

60 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}

61 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}

62 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}

63 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}

64 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

65 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

66 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.

67 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.

68 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.

69 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.

70 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.

71 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.

72 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

73 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 :-)

74 Punti di filtraggio multipli Quanti e quali punti scegliamo?

75 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?

76 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

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

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

79 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

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

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

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

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

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

85 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

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

87 D1 D2 a b c Esempio di fallimento MaxDist

88 D1 D2 a b c Esempio di fallimento MaxDist

89 D1 D2 a b c Esempio di fallimento MaxDist

90 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

91 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

92 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

93 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

94 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

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

96 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

97 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

98 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


Scaricare ppt "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."

Presentazioni simili


Annunci Google