Table des matières

Conception de BD réparties et requêtes

Préambule : Exemple Netflix

Netflix : utilisation de S3 en high availability

recommandation : analyser les notes des utilisateurs sur les filmes qu'ils ont vu → prédire les filmes pour lesquels ils donneraient de bonnes notes (0 à 5).

triplet : [utilisateur, filme, note (,date) ]

⇒ c'est énorme, beaucoup de calculs ⇒ c'est extrêmement lent. On veut mettre à jour continuellement.

Oracle ne marchait plus. Ils ont essayé S3.

Approche Décomposition

Migration vers un BDR

Conception d'un BDR par décomposition

On veut des morceaux fragments disjoints. Puis on les alloue aux différents sites, avec un peu de redondance si utile.

Objectifs de la décomposition

Fragmentation

Fragmentation Correcte

Fragmentation horizontale

On se rapproche à des fragmentation qui ressemble aux requêtes.

Fragmentation Horizontale par sélection

nclient nom ville
C1 Dupont Paris
C2 Martin Lyon
C3 Martin Paris
C4 Smith Lille

create table client1 as select * from client where ville = 'Paris';

nclient nom ville
C1 Dupont Paris
C3 Martin Paris

create table client2 as select * from client where ville != 'Paris' ;

nclient nom ville
C2 Martin Lyon
C4 Smith Lille

Une partie où ville = Paris et l'autre avec ville != Paris. On peut reconstituer la table initiale par union

create view client as select * from client1 union select * from client2;

Fragmentation selon n prédicats

FIXME voir slide

Fragmentation horizontale dérivée

Utilisation d'une clè étrangère:

create table cde1 as select cde.* from cde, client1 where cde.client = client1.nclient

create table cde2 as select cde.* from cde, client2 where cde.client = client2.nclient

Propriétés de la fragmentation horizontale dérivée FIXME : recopier formules de slide 13

Fragmentation Verticale

Propriétés

FIXME : copier de slide 15

Matrice d'affinité des attributs

Allocation des Fragments

Fragmentation des Requêtes

Evaluation de Requêtes Réparties

Un moteur de requête analyse la fragmentation par rapport au schéma de fragmentation, et génère des requêtes sur fragments. Puis, il fait une optimisation avec le schéma d'allocation.

Exemple d'évaluation simple

select A from R where B=b
fragmentation : R = R1 ∪ R2
select A from R1 where B=b union select A from R2 where B=b
Optimisation :
R1 = R1@Site1
R2=R2@Site2
R2=R2@Site3
Réécriture mettre la requete sous forme d'un arbre algébrique (feuille = relation, noeud = op. relationnel
Reconstruction remplacer chaque feuille par le programme de reconstruction de la relation globale
Transformation appliquer des techniques de réduction pour éliminer les opérations inutiles
Notations utilisées S : select
J : join
P : project

Reconstruction

FIXME voir slide 26

Réduction pour la fragmentation horizontale

Règle : éliminer l'accès aux fragments inutiles.

Exemple :

Réduction pour la Fragmentation Verticale

Règle : éliminer l'accès aux relations de base qui n'ont pas d'attributs utiles pour le résultat final

Réduction pour la framgentation horizontale dérivée

Règle distribuer les jointures par rapport aux unions et appliquer les réduciton pour la fragmentation horizontale

Exemple

FIXME : slides 28-31

Optimisation des Requêtes