1 Efficient Data and Program Integration Using Binding Patterns
Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon
INRIA
Page 2
Ioana Manolescu, INRIA Futurs, projet Verso 2BDA 2002
Definition du probleme (1/2) Contexte: systme 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
Page 3
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 enregistrs des niveaux bas
dozone ? 10/11/01 15/2/01 02/01/02 Cartes dozone
Page 4
Ioana Manolescu, INRIA Futurs, projet Verso 4BDA 2002
Definition du probleme (2/2) Contexte: systme 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
Page 5
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
Page 6
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
enregistrs des niveaux bas dozone ? Exemple : integration de
donnees scientifiques 10/11/01 15/2/01 02/01/02 Cartes dozone
Page 7
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
enregistrs des niveaux bas dozone ? Image(date, ID, img) 15/02/01
100 date ID img Exemple : integration de donnees scientifiques
Page 8
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 enregistrs des niveaux bas dozone ?
Image(date, ID, img) 15/02/01 100 date ID img 12 img val
OzoneLevels(img, val) Exemple : integration de donnees
scientifiques
Page 9
Ioana Manolescu, INRIA Futurs, projet Verso 9BDA 2002
TraficIntense(date) Dans quels jours de trafic intense ont t
enregistrs des niveaux bas dozone ? Image(date, ID, img) 15/02/01
100 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}
Page 10
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
Page 11
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
Page 12
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
Page 13
Ioana Manolescu, INRIA Futurs, projet Verso 13BDA 2002 Oprateur
physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2
Page 14
Ioana Manolescu, INRIA Futurs, projet Verso 14BDA 2002 Oprateur
physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2
Page 15
Ioana Manolescu, INRIA Futurs, projet Verso 15BDA 2002 Oprateur
physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1 Z2Z2 X1X1
Z1Z1
Page 16
Ioana Manolescu, INRIA Futurs, projet Verso 16BDA 2002 12 25
Oprateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z1Z1 X1X1
Z2Z2 X1X1 Z1Z1
Page 17
Ioana Manolescu, INRIA Futurs, projet Verso 17BDA 2002 12
Oprateur physique de BindJoin q(X,Z) F(X b Y f ) r X1X1 Z2Z2 X1X1
Z1Z1 25 X1X1 Z1Z1
Page 18
Ioana Manolescu, INRIA Futurs, projet Verso 18BDA 2002 Oprateur
physique de BindJoin : usage du cache q(X,Z) F(X b Y f ) r X1X1
Z2Z2 X1X1 Z1Z1 25 X1X1 Z1Z1 12 Cache X1X1 12 25
Page 19
Ioana Manolescu, INRIA Futurs, projet Verso 19BDA 2002 Oprateur
physique de BindJoin : usage du cache q(X,Z) F(X b Y f ) r X1X1
Z1Z1 25 X1X1 Z1Z1 12 Cache X1X1 12 25 X1X1 Z2Z2 X1X1 Z2Z2 12
Page 20
Ioana Manolescu, INRIA Futurs, projet Verso 20BDA 2002 Oprateur
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
Page 21
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 )
Page 22
Ioana Manolescu, INRIA Futurs, projet Verso 22BDA 2002 Oprateur
physique de BindJoin : cache et parallelisme q(X,Z) F(X b Y f ) r
Cache X1X1 12 25 X2X2 Z3Z3 X1X1 Z4Z4
Page 23
Ioana Manolescu, INRIA Futurs, projet Verso 23BDA 2002 q(X,Z)
F(X b Y f ) r Cache X1X1 12 25 X2X2 Z3Z3 X1X1 Z4Z4 Buffer de tuples
Oprateur physique de BindJoin : cache et parallelisme
Page 24
Ioana Manolescu, INRIA Futurs, projet Verso 24BDA 2002 q(X,Z)
F(X b Y f ) r Cache X1X1 12 25 X2X2 Z3Z3 X1X1 Z1Z1 X1X1 Z1Z1 12
X2X2 Oprateur physique de BindJoin : cache et parallelisme
Page 25
Ioana Manolescu, INRIA Futurs, projet Verso 25BDA 2002 q(X,Z)
F(X b Y f ) r Cache X1X1 12 25 X2X2 Z3Z3 X1X1 Z1Z1 X1X1 Z1Z1 12
X2X2 10 30 45 12 25 45 Oprateur physique de BindJoin : cache et
parallelisme
Page 26
Ioana Manolescu, INRIA Futurs, projet Verso 26BDA 2002 Oprateur
physique de BindJoin : cache et parallelisme q(X,Z) F(X b Y f ) r
Cache X1X1 12 25 X1X1 Z1Z1 12 25 X1X1 Z1Z1 X2X2 10 30 45 X2X2 Z3Z3
10 X2X2 Z3Z3 30 X2X2 Z3Z3 45
Page 27
Ioana Manolescu, INRIA Futurs, projet Verso 27BDA 2002 Oprateur
BindJoin : choix de la valeur traiter q(X,Z) F(X b Y f ) r Cache
X1X1 12 25 X2X2 10 30 45 X3X3 Z1Z1 X4X4 Z3Z3 X4X4 Z4Z4 X5X5 Z5Z5
X4X4
Page 28
Ioana Manolescu, INRIA Futurs, projet Verso 28BDA 2002 Oprateur
BindJoin : choix de la valeur traiter q(X,Z) F(X b Y f ) r Cache
X1X1 12 25 X2X2 10 30 45 16 35 X4X4 16 35 X3X3 Z1Z1 X4X4 Z3Z3 X4X4
Z4Z4 X5X5 Z5Z5
Page 29
Ioana Manolescu, INRIA Futurs, projet Verso 29BDA 2002 Oprateur
BindJoin : choix de la valeur traiter q(X,Z) F(X b Y f ) r Cache
X1X1 12 25 X2X2 10 30 45 16 35 X4X4 16 35 X3X3 Z1Z1 X4X4 Z3Z3 X4X4
Z3Z3 X5X5 Z5Z5 X4X4 Z4Z4 X4X4 Z4Z4 16 35
Page 30
Ioana Manolescu, INRIA Futurs, projet Verso 30BDA 2002
Evaluation des performances du BindJoin (ER) Donnes & requtes
synthtiques R : 10,000 tuples (x,z) paramtres variables:
distributions de x, z (indp.) f : cot 10, g : cot 1 requte: select
f(R.x), g(R.z) from R Plans: dans les deux cas, les deux BindJoin
implments CacheParallle + choix de la valeur la plus populaire
CacheParallle + choix de la plus ancienne valeur CacheSquentiel
(pas de buffer de tuples) R f g R g f
Page 31
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
Page 32
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
Page 33
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
Page 34
Ioana Manolescu, INRIA Futurs, projet Verso 34BDA 2002
Influence du taux dentre R.x, R.y distributions Zipf, Nx=7000,
Ny=1000, =0.2 R g f
Page 35
Ioana Manolescu, INRIA Futurs, projet Verso 35BDA 2002
Influence de lordre des donnes R.x, R.y distributions zipf,
Nx=7000, Ny=1000, =0.2 R g f
Page 36
Ioana Manolescu, INRIA Futurs, projet Verso 36BDA 2002
Conclusion Oprateur 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