1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA
Ioana Manolescu, INRIA Futurs, projet Verso 2BDA 2002 Definition du probleme (1/2) Contexte: système d'integration de donnees –En presence d'attributs volumineux Blobs, e.g. images (cartes), donnees (points mesures) –En presence de programmes couteux "user-defined functions" (e.g. traitement ou analyse d'images ou de resultats numeriques) –Requetes posees par des utilisateurs
Ioana Manolescu, INRIA Futurs, projet Verso 3BDA 2002 Exemple: integration de donnees scientifiques Programme OzoneLevels {12, 24, 125, 240} Jours de trafic intense 02/01/02 03/01/02 28/02/02 Dans quels jours de trafic intense ont été enregistrés des niveaux bas dozone ? 10/11/01 15/2/01 02/01/02 Cartes dozone
Ioana Manolescu, INRIA Futurs, projet Verso 4BDA 2002 Definition du probleme (2/2) Contexte: système d'integration de donnees –En presence d'attributs volumineux –En presence de programmes couteux –Requetes posees par des utilisateurs Probleme: –Reduire le temps de reponse –Produire une grande partie des resultats au debut de l'execution
Ioana Manolescu, INRIA Futurs, projet Verso 5BDA 2002 Principe de notre solution Modelisation des ressources comme des relations aux restrictions d'acces –Modele pre-existant (Ullmann 1995) Un nouvel operateur physique, specifique aux relations aux restrictions d'acces –Permet de traiter efficacement des requetes comportant Des programmes couteux Des transferts de donnees volumineuses
Ioana Manolescu, INRIA Futurs, projet Verso 6BDA 2002 Programme OzoneLevels {12, 24, 125, 240} Jours de trafic intense 02/01/02 03/01/02 28/02/02 Dans quels jours de trafic intense ont été enregistrés des niveaux bas dozone ? Exemple : integration de donnees scientifiques 10/11/01 15/2/01 02/01/02 Cartes dozone
Ioana Manolescu, INRIA Futurs, projet Verso 7BDA 2002 Programme OzoneLevels {12, 24, 125, 240} Jours de trafic intense 02/01/02 03/01/02 28/02/02 Dans quels jours de trafic intense ont été enregistrés des niveaux bas dozone ? Image(date, ID, img) 15/02/ date ID img Exemple : integration de donnees scientifiques
Ioana Manolescu, INRIA Futurs, projet Verso 8BDA 2002 Jours de trafic intense 02/01/02 03/01/02 28/02/02 Dans quels jours de trafic intense ont été enregistrés des niveaux bas dozone ? Image(date, ID, img) 15/02/ date ID img 12 img val OzoneLevels(img, val) Exemple : integration de donnees scientifiques
Ioana Manolescu, INRIA Futurs, projet Verso 9BDA 2002 TraficIntense(date) Dans quels jours de trafic intense ont été enregistrés des niveaux bas dozone ? Image(date, ID, img) 15/02/ date ID img 12 img val OzoneLevels(img, val) date 03/01/02 28/02/02 select i.img, i.date, t.date, o.level from Image i, OzoneLevels o, TraficIntense t where i.date=t.date and i.img=o.img and v.val < 20 {img} {val} {date} Exemple : integration de donnees scientifiques {date} {ID} {date} {ID, img} {ID} {img, date}
Ioana Manolescu, INRIA Futurs, projet Verso 10BDA 2002 Traitement de requetes sur des relations aux restrictions d'acces Notation: –Img(date b ID f ), OzoneLevels(img b val f ) Operateurs logiques –L'ensemble standard (sel, proj, join…) –Un operateur specifique: le BindJoin Join assymetrique, passage d'information vers une relation a acces restreint Optimisation algebrique –Decrite ailleurs TraficIntense Image OzoneLevels date img
Ioana Manolescu, INRIA Futurs, projet Verso 11BDA 2002 Traitement de requetes sur des relations aux restrictions d'acces Operateurs logiques –L'ensemble standard (sel, proj, join…) + BindJoin Optimisation algebrique Nous allons voir: –Un operateur physique de BindJoin permettant de Reduire le temps de reponse Produire une grande partie des resultats au debut de son execution En presence de programmes couteux et/ou des transferts de donnees volumineuses
Ioana Manolescu, INRIA Futurs, projet Verso 12BDA 2002 Plan d'execution et problemes de performance possibles (1/2) Image(date b ID f ) Image(Id b img f ) OzoneLevels(img b level f ) Trafic(date f ) select i.img, i.date, t.date, o.level from S 1 :Image i, S 2 :OzoneLevels o, S 3 :Trafic t where i.date > t.date and t.date < i.date+3 and i.img=o.img and o.level < 20 S2S2 S3S3 S1S1 S4S4 Appels redondants de programmes Transferts redondants d'images Mauvais temps de reponse Trafic Image OzoneLevels σ S1S1 S3S3 S1S1 S2S2 S4S4 S2S2 S2S2 Image S1S1 S1S1
Ioana Manolescu, INRIA Futurs, projet Verso 13BDA 2002 Opérateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2
Ioana Manolescu, INRIA Futurs, projet Verso 14BDA 2002 Opérateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2
Ioana Manolescu, INRIA Futurs, projet Verso 15BDA 2002 Opérateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2 X1X1 Z1Z1
Ioana Manolescu, INRIA Futurs, projet Verso 16BDA Opérateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2 X1X1 Z1Z1
Ioana Manolescu, INRIA Futurs, projet Verso 17BDA Opérateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z2Z2 X1X1 Z1Z1 25 X1X1 Z1Z1
Ioana Manolescu, INRIA Futurs, projet Verso 18BDA 2002 Opérateur physique de BindJoin : usage du cache q(X,Z) F(X b Y f ) r X1X1 Z2Z2 X1X1 Z1Z1 25 X1X1 Z1Z1 12 Cache X1X
Ioana Manolescu, INRIA Futurs, projet Verso 19BDA 2002 Opérateur physique de BindJoin : usage du cache q(X,Z) F(X b Y f ) r X1X1 Z1Z1 25 X1X1 Z1Z1 12 Cache X1X X1X1 Z2Z2 X1X1 Z2Z2 12
Ioana Manolescu, INRIA Futurs, projet Verso 20BDA 2002 Opérateur physique de BindJoin : usage du cache Ensemble: 1.La modelisation par des relations aux restrictions d'acces et 2.L'usage d'un cache dans le BindJoin permettent d'eviter des operations redondantes –Technique plus ciblee, plus legere que les semi- joins L'operateur physique de BindJoin s'adapte aux limitations memoire
Ioana Manolescu, INRIA Futurs, projet Verso 21BDA 2002 Plan d'execution et problemes de performance possibles (2/2) Image OzoneLevels OzoneLevels(img b level f ) Trafic(date f ) select i.img, i.date, t.date, o.level from S 1 :Image i, S 2 :OzoneLevels o, S 3 :Trafic t where i.date > t.date and t.date < i.date+3 and i.img=o.img and o.level < 20 S2S2 S3S3 S1S1 S4S4 Peu de tuples au debut temps tuples Taux de sortie des tuples du BindJoin: Image(date b ID f ) Image(Id b img f )
Ioana Manolescu, INRIA Futurs, projet Verso 22BDA 2002 Opérateur physique de BindJoin : cache et parallelisme q(X,Z) F(X b Y f ) r Cache X1X X2X2 Z3Z3 X1X1 Z4Z4
Ioana Manolescu, INRIA Futurs, projet Verso 23BDA 2002 q(X,Z) F(X b Y f ) r Cache X1X X2X2 Z3Z3 X1X1 Z4Z4 Buffer de tuples Opérateur physique de BindJoin : cache et parallelisme
Ioana Manolescu, INRIA Futurs, projet Verso 24BDA 2002 q(X,Z) F(X b Y f ) r Cache X1X X2X2 Z3Z3 X1X1 Z1Z1 X1X1 Z1Z1 12 X2X2 Opérateur physique de BindJoin : cache et parallelisme
Ioana Manolescu, INRIA Futurs, projet Verso 25BDA 2002 q(X,Z) F(X b Y f ) r Cache X1X X2X2 Z3Z3 X1X1 Z1Z1 X1X1 Z1Z1 12 X2X Opérateur physique de BindJoin : cache et parallelisme
Ioana Manolescu, INRIA Futurs, projet Verso 26BDA 2002 Opérateur physique de BindJoin : cache et parallelisme q(X,Z) F(X b Y f ) r Cache X1X X1X1 Z1Z X1X1 Z1Z1 X2X X2X2 Z3Z3 10 X2X2 Z3Z3 30 X2X2 Z3Z3 45
Ioana Manolescu, INRIA Futurs, projet Verso 27BDA 2002 Opérateur BindJoin : choix de la valeur à traiter q(X,Z) F(X b Y f ) r Cache X1X X2X X3X3 Z1Z1 X4X4 Z3Z3 X4X4 Z4Z4 X5X5 Z5Z5 X4X4
Ioana Manolescu, INRIA Futurs, projet Verso 28BDA 2002 Opérateur BindJoin : choix de la valeur à traiter q(X,Z) F(X b Y f ) r Cache X1X X2X X4X X3X3 Z1Z1 X4X4 Z3Z3 X4X4 Z4Z4 X5X5 Z5Z5
Ioana Manolescu, INRIA Futurs, projet Verso 29BDA 2002 Opérateur BindJoin : choix de la valeur à traiter q(X,Z) F(X b Y f ) r Cache X1X X2X X4X X3X3 Z1Z1 X4X4 Z3Z3 X4X4 Z3Z3 X5X5 Z5Z5 X4X4 Z4Z4 X4X4 Z4Z
Ioana Manolescu, INRIA Futurs, projet Verso 30BDA 2002 Evaluation des performances du BindJoin (ER) Données & requêtes synthétiques –R : 10,000 tuples (x,z) –paramètres variables: distributions de x, z (indép.) –f : coût 10, g : coût 1 –requête: select f(R.x), g(R.z) from R Plans: –dans les deux cas, les deux BindJoin implémentés CacheParallèle + choix de la valeur la plus populaire CacheParallèle + choix de la plus ancienne valeur CacheSéquentiel (pas de buffer de tuples) R f g R g f
Ioana Manolescu, INRIA Futurs, projet Verso 31BDA 2002 Taux de sortie des tuples (1/3) R.x, R.y distribution uniforme; Nx=5500; Ny=1000 R f g
Ioana Manolescu, INRIA Futurs, projet Verso 32BDA 2002 Taux de sortie des tuples (2/3) R.x, R.y distribution uniforme; Nx=5500; Ny=1000, g avant f R g f
Ioana Manolescu, INRIA Futurs, projet Verso 33BDA 2002 Taux de sortie des tuples (3/3) R.x, R.y zipf distributions, Nx=7000, Ny=1000, α=0.2, g avant f R g f
Ioana Manolescu, INRIA Futurs, projet Verso 34BDA 2002 Influence du taux dentrée R.x, R.y distributions Zipf, Nx=7000, Ny=1000, α=0.2 R g f
Ioana Manolescu, INRIA Futurs, projet Verso 35BDA 2002 Influence de lordre des données R.x, R.y distributions zipf, Nx=7000, Ny=1000, α=0.2 R g f
Ioana Manolescu, INRIA Futurs, projet Verso 36BDA 2002 Conclusion Opérateur BindJoin pour: –Appeller des programmes couteux –Transferer des donnees volumineuses (blobs) Usage du cache pour reduire RT, du parallelisme pour produire beaucoup de tuples vite Approche pragmatique pour remedier aux problemes de performance les plus importants S'integre bien dans le cadre traditionnel d'execution et d'optimisation de requetes