WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mutualisation de requêtes XQuery sur des Flux RSS dans un environnement Pair-à-Pair

( Télécharger le fichier original )
par Mohammed Salah Benamira
Université de Versailles Saint Quentin en Yvelines - Master 2 Recherche 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

2.3.2 L'algorithme QT

Son rôle est de trouver la combinaison des offres de données les plus intéressantes à la requête de l'acheteur, et ce à moindre coût.

Cet algorithme tourne itérativement et tente d'améliorer le plan d'exécution d'une requête à chaque itération.

Dans chaque itération l'acheteur fait un appel d'offre pour trouver les données relevantes à sa requête, et les vendeurs répondent avec leurs offres contenant l'estimation des propriétés de leurs réponses. Les vendeurs peuvent ne pas avoir la totalité des données nécessaires pour une requête, c'est pourquoi ils font des offres qui ne concernent que la part de données qu'ils possèdent localement. A la fin de chaque itération l'acheteur utilise ces offres pour trouver, si c'est possible, un meilleur plan d'exécution, et l'algorithme recommence une nouvelle fois avec un nouvel ensemble de requêtes dans le but de reconstruire un nouveau plan d'exécution plus optimal que le précédent. L'algorithme d'optimisation est une sorte de négociation entre le pair acheteur et les pairs vendeurs.

Algorithme coté Acheteur

Algorithme coté Vendeur

B0. Initialisation Q= {{q,C}}

B1.faire une estimation stratégique des coûts pour requêtes de l'ensemble Q

B2.faire un appel d'offre des requêtes de Q

B3.choisir les meilleures offres {qi, ci}

B4. En utilisant les meilleures offres, trouver les plans d'exécution Pm et leurs coûts Cm.

B5. Chercher des sous requêtes qe, et leurs coûts ce respectifs, si elles existent, elles peuvent être utilisées à l'étape B.4.

B.6 mettre à jour l'ensemble Q avec les sous requêtes {qe, ce}.

B.7 soit P* le meilleur plan d'exécution parmi Pm. Si P* est meilleur que celui produit dans la précédente itération de l'algorithme, ou bien si l'étape B6 a modifié l'ensemble Q, alors aller à l'étape B.1.

B.8 informer les pairs vendeurs, qui, leurs requêtes sont utilisées dans le meilleur plan d'exécution P*, qu'ils commencent l'exécution de ces requêtes.

S1.pour chaque requête q dans l'ensemble Q faire :

S2.1 trouver les sous requêtes qk de q qui peuvent être exécutées localement.

S2.2 faire une estimation pour chaque sous requête qk

S2.3 faire offre et essayer de vendre les requêtes de l'étape S2.1

Figure 2 : L'algorithme QT

La figure 2 représente le détail de l'algorithme d'optimisation des requêtes. L'entrée de cet algorithme est une requête q, et la sortie est le meilleur plan d'exécution P* et son coût C* (étape B8).

L'algorithme au niveau de l'acheteur tourne itérativement (étape B1 à B7). Chaque itération commence avec un ensemble Q de pairs et de requêtes et leurs coûts correspondant, que l'acheteur veut acheter. Dans la première étape (B1), l'acheteur estime stratégiquement le coût qu'il doit demander concernant les requêtes dans l'ensemble Q, et lance après un appel d'offre aux pairs distants (étape B2). Les vendeurs (candidats) après avoir reçu cet appel d'offre, ils vont faire leurs offres qui contiennent les réponses concernant des parties des requêtes dans l'ensemble Q (étapes S2.1 - S2.2). Ensuite les offres gagnantes seront sélectionnées (étapes B3 S3). Le pair acheteur utilise ces offres afin de trouver un ensemble de plans d'exécution candidats Pm et leurs coûts respectifs Cm (étape B4), et enrichit l'ensemble Q avec de nouvelles requêtes et leurs coûts (qe, ce) (étape B5 B6), qui peuvent être utilisées dans la prochaine itération pour améliorer davantage les plans d'exécution produits dans l'étape B4. Finalement, à l'étape 7, le meilleur plan d'exécution P*, parmi les plans d'exécution candidats Pm est sélectionné. Si P* n'est pas meilleur par rapport au plan d'exécution produit dans la précédente itération (amélioration impossible) et à l'étape B5, il n'y a pas eu de nouvelles requêtes, alors l'algorithme s'arrête.

Exemple :

Considérons l'exemple précédent de la société de télécommunication, et la requête posée par le bureau de paris :

q=SELECT SUM(Montant) FROM FACTURE F, CLIENT C

WHERE F.IDClient=C.IDClient AND Bureau in (`Lyon',`Metz');

Etape B0 :

Q={q,c}

Etapes B1, B2:

Regarder figure 3

Etape S1 :

Etape S2.1 :

Les pairs lyonnais et Messins répondent à l'appel d'offre de l'acheteur respectivement avec q1, q2

q1=SELECT SUM(amount) FROM invoiceline i, customer c

WHERE i.custid=c.custid AND office=`Lyon';

q2= SELECT SUM(amount) FROM invoiceline i, customer c

WHERE i.custid=c.custid AND office=`Metz';

Etape S2.1, S2.3 :

Regarder figure 3

Etape B3 :

Supposant que les pairs Lyonnais et Messins aient fait les meilleures offres pour répondre à la requête du bureau de Paris {{q1, c1}, {q2, c2}}

Etape B4 :

Le meilleur plan d'exécution P* comprend q1 et q2.

Etapes B5, B6:

Mettre à jour l'ensemble Q avec les nouvelles sous requêtes

Q= {{q, c}, {q1, c1}, {q2, c2}}

Etape B7:

Puisqu'il s'agit de la première itération, il n'y a pas encore de plan d'exécution aller à B1

v La prochaine itération de l'algorithme va faire un appel d'offre des requêtes de l'ensemble Q, et va essayer d'améliorer P*.

o Si amélioration possible c'est-à-dire le plan d'exécution de la deuxième itération est mieux que P* aller à B1.

o Sinon aller à B8.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite