Title: Efficient Data and Program Integration Using Binding Patterns
1Efficient Data and Program Integration Using
Binding Patterns
Ioana Manolescu, Luc Bouganim, Francoise Fabret,
Eric Simon INRIA
2Definition 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
3Exemple integration de donnees scientifiques
4Definition 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
5Principe 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
6Exemple integration de donnees scientifiques
7Exemple integration de donnees scientifiques
Image(date, ID, img)
8Exemple integration de donnees scientifiques
Image(date, ID, img)
OzoneLevels(img, val)
9Exemple integration de donnees scientifiques
select i.img, i.date, t.date, o.level from Image
i, OzoneLevels o, TraficIntense t where
i.datet.date and i.imgo.img and v.val lt 20
Dans quels jours de trafic intense ont été
enregistrés des niveaux bas dozone ?
TraficIntense(date)
Image(date, ID, img)
OzoneLevels(img, val)
10Traitement de requetes sur des relations aux
restrictions d'acces
- Notation
- Img(datebIDf), OzoneLevels(imgbvalf)
- Operateurs logiques
- L'ensemble standard (sel, proj, join)
- Un operateur specifique le BindJoin
- Join assymetrique, passage d'informationvers une
relation a acces restreint - Optimisation algebrique
- Decrite ailleurs
11Traitement 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
12Plan d'execution et problemes de performance
possibles (1/2)
select i.img, i.date, t.date, o.level from
S1Image i, S2OzoneLevels o, S3Trafic t where
i.date gt t.date and t.date lt i.date3 and
i.imgo.img and o.level lt 20
S4
S1
S3
Image(datebIDf) Image(Idbimgf)
Trafic(datef)
S2
OzoneLevels(imgblevelf)
13Opérateur physique de BindJoin
r
F(Xb Yf)
q(X,Z)
14Opérateur physique de BindJoin
r
F(Xb Yf)
q(X,Z)
X1
Z2
15Opérateur physique de BindJoin
r
Z1
X1
F(Xb Yf)
q(X,Z)
X1
Z2
16Opérateur physique de BindJoin
r
Z1
X1
F(Xb Yf)
q(X,Z)
X1
Z2
17Opérateur physique de BindJoin
r
12
25
F(Xb Yf)
q(X,Z)
X1
Z2
18Opérateur physique de BindJoin usage du cache
25
r
F(Xb Yf)
q(X,Z)
X1
Z2
19Opérateur physique de BindJoin usage du cache
r
F(Xb Yf)
q(X,Z)
20Opérateur physique de BindJoin usage du cache
- Ensemble
- La modelisation par des relations aux
restrictions d'acces et - 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
21Plan d'execution et problemes de performance
possibles (2/2)
select i.img, i.date, t.date, o.level from
S1Image i, S2OzoneLevels o, S3Trafic t where
i.date gt t.date and t.date lt i.date3 and
i.imgo.img and o.level lt 20
S4
S1
S3
Image(datebIDf) Image(Idbimgf)
Trafic(datef)
S2
OzoneLevels(imgblevelf)
22Opérateur physique de BindJoin cache et
parallelisme
r
F(Xb Yf)
q(X,Z)
23Opérateur physique de BindJoin cache et
parallelisme
r
F(Xb Yf)
q(X,Z)
24Opérateur physique de BindJoin cache et
parallelisme
25
r
X2
Z3
X2
F(Xb Yf)
q(X,Z)
25Opérateur physique de BindJoin cache et
parallelisme
25
r
X2
Z3
F(Xb Yf)
q(X,Z)
26Opérateur physique de BindJoin cache et
parallelisme
r
F(Xb Yf)
q(X,Z)
27Opérateur BindJoin choix de la valeur à traiter
r
F(Xb Yf)
q(X,Z)
X4
28Opérateur BindJoin choix de la valeur à traiter
r
Cache
X1
12
25
X2
45
30
10
X4
16
35
F(Xb Yf)
q(X,Z)
29Opérateur BindJoin choix de la valeur à traiter
16
35
r
16
35
Cache
X1
12
25
X2
45
30
10
X4
16
35
F(Xb Yf)
q(X,Z)
30Evaluation 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)
31Taux de sortie des tuples (1/3)
R.x, R.y distribution uniforme Nx5500 Ny1000
32Taux de sortie des tuples (2/3)
R.x, R.y distribution uniforme Nx5500 Ny1000,
g avant f
33Taux de sortie des tuples (3/3)
R.x, R.y zipf distributions, Nx7000, Ny1000,
a0.2, g avant f
34Influence du taux dentrée
R.x, R.y distributions Zipf, Nx7000, Ny1000,
a0.2
35Influence de lordre des données
R.x, R.y distributions zipf, Nx7000, Ny1000,
a0.2
36Conclusion
- 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