Bases de Données Mobiles et Réparties
Bases de Données Mobiles et Réparties
MÉMOIRE
PRÉSENTÉ
DE LA MAÎTRISE EN INFORMATIQUES
PAR
PIERRE SHARUSVENS
DÉCEMBRE 2016
UNIVERSITÉ DU QUÉBEC À MONTRÉAL
Service des bibliothèques
Avertissement
La diffusion de ce mémoire se fait dans le respect des droits de son auteur, qui a signé
le formulaire Autorisation de reproduire et de diffuser un travail de recherche de cycles
supérieurs (SDU-522 - Rév.01-2006) . Cette autorisation stipule que «conformément à
l'article 11 du Règlement no 8 des études de cycles supérieurs, [l'auteur] concède à
l'Université du Québec à Montréal une licence non exclusive d'utilisation et de
publication de la totalité ou d'une partie importante de [son] travail de recherche pour
des fins pédagog iques et non commerciales. Plus précisément, [l 'auteur] autorise
l'Université du Québec à Montréal à reproduire , diffuser, prêter, distribuer ou vendre des
copies de [son] travail de recherche à des fins non commerciales su r quelque support
que ce soit, y compris l'Internet. Cette licence et cette autorisation n'entraînent pas une
renonciation de [la] part [de l'auteur] à [ses] droits moraux ni à [ses] droits de propriété
intellectuelle. Sauf entente contraire , [l'auteur] conserve la liberté de diffuser et de
commercialiser ou non ce travail dont [il] possède un exemplaire.»
REMERCIEMENTS
J'aimerais tout d' abord exprimer mes remerciements à Monsieur Abdellatif OBAID,
professeur au département d'informatique de l'Université du Québec à Montréal ayant
accepté de diriger ce travail, pour ses pertinents conseils, sa disponibilité et surtout
son humilité.
Je tiens aussi à remercier les personnes de ma famille pour leur soutien, leur
confiance et leur amour indéfectibles. Merci à Papa, Man1an, Ja111es, Hemsly, mes
sœurs et ma femme Pierre A. Sandy. Merci pour votre a111our et d'être toujours là
quand j'en ai besoin.
lll
DÉDICACE
À mon père,
pour toutes ces valeurs qu'il m'a transmises.
TABLE DES MATIÈRES
2.2.3 Modèle de Kumar, T.V. Vijay et al. (20 10) .............................. ......... ...... 20
2.2.4 Modèle de Komai, Y. et al. (2014) .. ....... .... ...... ... .... ... .............................. 20
CHAPITRE III
ARCHITECTURE PROPOSÉE ..... .......... .... ............ .................... ...... .... ... ... .... ........ .. 23
3.1 Le système de mise en cache .. ..... ...... .... ......... ..... ................. .. ........................... 23
3.2 Architecture proposée ......... ... ....... ........... .... .. .. ... ..... ..... .. .... ............................... 24
3 .2.1 La mise en cache .. ... ... ......... .............................................. ...... .. ... .. ..... .... . 26
3 .2.2 Le remplacement du cache ..... .. .. .... ..... .. ... ... ......... ............. ...... ... ..... .... ... .. 31
3.2.3 Le gestionnaire de cache ... ..................... ... ..... .... ... ... ... .. ... ..... ................... 34
CHAPITRE IV
LE TRAITEMENT DES REQUÊTES ........ ...... ... .. ...... ....... ...... ................................. 37
4. 1 Le traitement des requêtes ........ .. ... .... ... ....... .. ...... .. ................................... ..... ... .. 37
4.1.1 Éléments de 1' environnement de traitement des requêtes ...... ........ .. ....... . 3 8
4.2 Architecture de traitement des requêtes proposée ... ....... .............. ... ... ............... . 40
4.3 Le traitement des requêtes ............................................................. ......... .. ........ .. 42
4.4 Traitement des requêtes .... ...... ................... ....... ... .... ........ .... .. ...... ............. .......... 45
4.5 Stratégie d'exécution des requêtes ......... ... ... .... ... ...... ...... .. ........ ... .. ...... ...... ..... ... 46
4.5.1 Exécution locale : Stratégie d' exécution vers la BC ..... ........................... 46
4.5.2 Exécution distante : Stratégie d'exécution vers le gestionnaire de cache
uniquement .......... .. ... ..... .... ......... ............. .. ... .. ....... ... ........................... ... .. 4 7
4.5 .3 Exécution locale et distante : Stratégie d' exécution quand la réponse est à
la fois dans BC et le GC .... ... .. ... .. .. .. ............... ... ... ............... ...... .......... .... . 49
4.5.4 Exécution locale et distante mixte : Stratégie d'exécution quand la
réponse est à la fois dans la BC, le GC et le BS ....................................... 50
CHAPITRE V
ÉVALUATION DES RÉSULTATS ..... ..... ........ ........... ..... .... .. ...... ....... ... ................... 52
5.1 Facteur de performance ....... ...... ... .... ..... .... ...... ....... .. ..... .. ........ .... .......... ... .......... 53
• Temps de transfert ....................................................................................... 53
• Disponibilité des données ...... ........... ...... .. ............ .. .. ..... ........... ............ .... ... 54
• Utilisatew· mobile ............................. .. ..... .. .. .... ................... ..... ..... ... .... ..... ... 58
CONCLUSION GÉNÉRALE ..... .. ......... ................... .. ...... .. ................ .............. ......... . 63
Vl
RÉFÉRENCES .. ... .. ........ .. ... ...... ...... ... .. .. ........... ............................... .................... .... ... 65
LISTE DES FIGURES
Figure Page
Figure 2.1 Région sémantique d' utilisation (Dar et al., 1996) .. ........ .. .............. ......... 8
Figure 2.2 Sémantique de mémoire cache de (Qun et al., 2003) ............................ . 10
Figure 2.3 4- Niveau d' indexation sémantique hiérarchique (Bashir et Qadir, 2006)
11
Figure 2.4 Sémantique de mémoire cache de (Safaeei et al., 2008) .. ........ ............. 13
Figure 2.5 Relation entre la requête et segment sémantique de (Qing-jun, 2010) ... 14
Figure 2.6 Coopération entre les nœuds de (Liang et al. , 2012) .......... .. ........ .. ........ 16
Figure 2.7 Traitement des requêtes de (Marcel et al. , 2003) .................................... 18
Figure 2.8 Exécution des requêtes en mode déconnecté (Amja et al. , 2011) .. ........ 19
Figure 3.1 Utilisateur mobile et sa base de données cachée .................................... 26
Figure 3.2 Algorithme de remplacement de cache ...................................... .... ......... 33
Figure 3.3 Remplacement de cache ......................................................................... 34
Figure 3.4 Centre de gestion de cache ...... .. ................ .... .. .......... ............ .. ...... .... ..... 35
Figure 3.5 Architecture du réseau LTE (rcrwireless news mai 2014) .......... .. ......... 36
Figure 4.1 Architecture de traitement des requêtes .................................................. 41
Figure 4.2 Digramme d' activité de traitement des requêtes ............ ...... .. .... .......... ..41
Figure 4.3 Algorithme de traitement des requêtes ................ ........ ...................... ..... 45
Figure 4.4 Requête affectant seulement la BC .. .............................. .... .................... . 47
Figure 4.5 Requête affectant seulement le GC ........................ ........ .... .................... . 48
Figure 4.6 Requête affectant la BC et le GC .......... .. ...... ...... .. .................................. 49
Figure 4.7 Requête affectant la BC, le GC et la BS ...................................... .......... . 50
Vlll
Figure 5.1 Transfert des données vers les sources de données ...... ........... ... .. ........ .. 54
Figure 5.2 Traitement d'une requête dans la donnée cachée . ..... ... .. ...... ... ......... ..... . 55
Figure 5.3 Traitement d' une requête entre 2 sources de données ...... ... ... ... .... ......... 56
Figure 5.4 Traitement d' une requête entre 3 sources de données ........ .. ...... .. ........ .. 57
Figure 5.5 Graphe des tests de latence .. ...... ....... ... ... ..... ...... ....... .... ... .... .. ... .... ... .... .. . 59
Figure 5.6 Résultat des tests de latence iPhone 5s ... ... ... .............. .... ... .. ... ... ...... ..... .. 61
LISTE DES TABLEAUX
Tableau Page
Tableau 3.1 Mise en cache d' une requête avec précision .. ..... .. ... ....... ... ...... ... .. .... .. 28
Tableau 3.2 Mise en cache d' une requête sans spécification des prédicats . ..... ... ... . 29
Tableau 3.3 La mise en cache des réstùtats d' une requête avec précision .. .... ... .. .... 29
Tableau 3.4 La mise en cache des résultats d' une requête sans précision ........... ... 30
Tableau 5.1 Résultat des différents tests de latence ..... ..... ..... ......... ... .. .... .. ..... ... .. ... . 59
LISTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES
DU : Demande Utilisateur
GC : Gestionnaire de cache
RU : Réponse Utilisateur
: Temps de réception
UM : Utilisateur mobile
Xl
RÉSUMÉ
Depuis quelques années, les évolutions réalisées dans les domaines des terminaux
portables et des réseaux sans-fil suscitent un intérêt croissant pour l' informatique
mobile. La croissance des architectures des données distribuées, l'augmentation des
ressources et la répartition des données et des services deviennent de plus en plus une
obligation. Les systèmes de gestion de base de données ont beaucoup évolué et sont
présents dans tous les environnements infom1atiques.
Cependant, les bases de d01mées dans un environnement mobile font face à un certain
nombre de contraintes de disponibilités des ressources, de stockage et de connectivité.
Ainsi, le traitement des requêtes dans un environnement mobile nécessite des
approches différentes par rapport à 1' approche classique. Surtout dans
l' environnement distribué qui est souvent caractérisé par des nœuds hétérogènes.
Pour pallier à ce problème, nous proposons une approche basée sur l'approche
classique. Elle consiste à élaborer un plan de gestion de cache axé sur la mise en
cache des résultats des requêtes de l' utilisateur mobile. Elle permet de mieux
répondre à d'autres requêtes dans le futur. Elle utilise un plan de traitement des
requêtes qui priorise une exécution locale afin de minimiser le coût de traitement et
de faciliter une gestion efficace des données. Notre approche traite localement une
requête déjà traitée sur un même BTS en utilisant les données cachées sur ce BTS.
Elle permet diminuer le coût de traitement et des frais d ' utilisations des d01mées.
INTRODUCTION
De nos jours, les systèmes de gestion de base de données peuvent être centralisés,
distribués, mobiles ou embarqués. Elles ont toutes pour objectif de répondre à des
requêtes exprimées par des usagers. Au fil des années, les avancées des
télécommunications sans fil et la prolifération de la technologie mobile permettent de
stocker des données de tailles relativement importantes. Elles permettraient
également à un utilisateur d' exécuter des requêtes n' importe où, n ' importe quand et à
partir de n' importe quel terminal. Mais les architectures des bases de données mobiles
sont de plus en plus complexes et sont limitées par un manque d' évolutivité. Ces
contraintes portent sur plusieurs aspects, d'une part la résolution des requêtes, d' autre
part la possibilité de faire une gestion améliorée du cache.
Depuis quelques années, les évolutions réalisées dans les domaines des terminaux
portables et des réseaux sans-fil suscitent un intérêt croissant pour 1' informatique
mobile. L'utilisation de ces nouveaux environnements introduit de nouvelles
problématiques (Forman et Zahorjan, 1994) et crée de nouveaux besoins. De plus, la
disponibilité de ces ressources n'est pas stable et peut varier en fonction d'ajout, de
suppression de périphériques ou des limitations imposées par des politiques
d' économie de la batterie. (Le Mouël, 2003). De ce fait, les performances observées
sur le lien sans-fil sont soumises à d'importantes variations occasionnées par
1' environnement proche comme les interférences et les déconnexions dues à des
éléments physiques, des changements de lieux géographiques ou de réseau. (Le
Mouël, 2003).
Les différences qm existent entre les environnements mobiles par rapport aux
environnements fixes nous amènent à reconsidérer l'exploitation des périphériques
dans un tel environnement. En effet, nous ne pouvons pas considérer les changements
d' état des terminaux utilisés (connecté, non connecté, etc.) comme des erreurs fatales.
D' ou la nécessitée d' adapter le comportement des bases de données mobiles aux
différents états que peuvent prendre un équipement dans l'environnement mobile.
1.2 Problématique
Le traitement efficace des requêtes est d' un grand intérêt dans les bases de d01mées
mobiles. Ce point regroupe l' optimisation des requêtes, les mécanismes de
transaction, la gestion de la mémoire cache, etc. Du fait que les bases de données
mobiles font face à des contraintes telles que : l' insuffisance des ressources de
traitement et de stockage, les coupures de connexion réseau, la bande passante, etc.
Ces contraintes ne sont pas prises en considération dans la teclmologie traditionnelle
de base de d01mées.
3
Une mémoire cache est une mémoire dans laquelle sont stockées de façon temporaire
les données les plus fréquemment utilisées afm d' améliorer la performance et réduire
les états d' attente d' un système. Le mécanisme de mise en cache implique de
répondre à un certain nombre de questions :
1.4 Méthodologie
Pour atteindre les objectifs précités la méthodologie que nous utilisons consiste à la
conception d' :
• Une nouvelle stratégie de gestion de cache. Qui permet une mise en cache
intelligente des requêtes et les résultats des requêtes
• Un eNodeB intelligent qui joue le rôle de gestionnaire de cache. Il fait une
copie des données des utilisateurs mobiles qui sont connectés pour faciliter le
processus de coopération entre les utilisateurs mobiles.
• Un système de traitement et d'exécution de requête. Il est doté d'un
interpréteur de requête qui distingue la partie d'w1e requête qui est disponible
dans le cache et la partie qui n' est pas disponible.
Dans le chapitre 2, nous présentons une revue de littérature. Dans cette revue, nous
présentons les approches et les systèmes existants qui s' inscrivent dans le même
angle de recherche que nous. Nous présentons ensuite une synthèse des principaux
travaux liés aux techniques de mise en cache et au traitement des requêtes dans un
environnement mobile.
5
Dans le chapitre 3, nous présentons le traitement des requêtes et les différents types
de requêtes mobiles. Nous présentons la méthode de mise en cache, et l' architecture
de la solution.
Dans le chapitre 5, nous présentons une évaluation de performances par des études de
cas. Nous concluons ce document en dressant un bilan des principaux résultats de
notre travail et en dressant une liste des perspectives de recherche envisagées.
}.6 Portée
Notre projet consiste à proposer une approche et une solution architecturale pour
l'environnement mobile pour le traitement des requêtes pour les bases de données
mobiles distribuées. Notre solution sera axée sur la mise en cache des résultats des
requêtes des utilisateurs pour mieux répondre à d' autres requêtes dans le futur.
Elle consiste à :
• Proposer une nouvelle architecture de mise en cache des clients mobiles. Cette
architecture sera spécifiquement dédiée aux clients mobiles ayant des
téléphones intelligents 3G et LTE
• Proposer un algorithme de remplacement de cache.
• Proposer une stratégie d' exécution de requêtes dans l' environnement mobile
qui prend en compte la structure de mise en cache proposée et qui réduit le
temps d' attente et la congestion sur le réseau.
Notre travail est limité en ce sens que nous limitons notre stratégie à des simples
opérations select. De plus, nous supposons que chaque fois qu ' un client envoie une
requête à un nœud du réseau, les résultats doivent être trouvés.
CHAPITRE II
Dans ce chapitre, nous présentons une revue de littérature et un aperçu des résultats et
des algorithmes qui ont été utilisés dans le passé. Nous présentons aussi sur les
systèmes qui ont été utilisés pour réaliser 1' envir01mement expérimental de notre
approche.
Un système de base de données mobile et distribué est conçu pour s'exécuter dans un
environnement mobile et distribué. Pour qu'un tel système soit efficace, il faut faire
face aux situations exprimées auparavant, à savoir :
Dans les systèmes répartis, les facteurs qui participent à la dégradation du système
sont les accès à distance aux données et les opérations de synchronisation
(N otouom, 1996)
son utilisation efficace et 1' utilisation des ressources qui se contribuent dans les
processus de traitement des requêtes dans le but de réduction du temps de réponse .
Le coût de traitement des requêtes dépend de la latence du réseau qui peut être réduite
par une bonne utilisation du cache sémantique combiné avec le traitement des
requêtes.
S. Dar et al (S. Dar et al. , 1996), ont proposé un modèle sémantique pour la mise en
cache du côté client et le remplacement de cache dans un système de base de données
client-serveur. Ils ont comparé cette approche avec les méthodes de la mise en cache
de pages dans la mémoire centrale et des stratégies de mise en cache par tuple de
données dans les tables. Leur méthode a été plutôt efficace parce que le modèle de
mise en cache proposé tire ses avantages de trois idées clés :
Une représentation graphique d'utilisation de ses idées clés est présentée dans la
Figure 2.1.
Q2 Q2
QI QJ
- 1
1 1 1'2
Il ~ '-i- r--1
QJ
Dans ce modèle, le client conserve une description sémantique des données dans sa
mémoire cache au lieu de maintenir une liste de pages physiques ou des
identificateurs des tuples de données dans les tables. Le traitement des requêtes fait
usage de la description sémantique pour déterminer quelles données sont localement
disponibles dans le cache et quelles sont les données nécessitant l' accès aux données
auprès du serveur. Les d01mées qui ne sont pas disponibles localement constituent le
reste de la requête. Une politique de remplacement de cache dicte comment les
victimes de remplacement sont choisies
a) Il n'existe pas un schéma de cache sémantique exhaustif, parce qu'il n'y a pas
de schéma de d01mé ou les données se pas regroupent en fonction de leur type
attribut, prédicat, résultat et temps. Ce manque de structure enlève la
possibilité de raisonner sur les données en caches
9
À défaut d'une mise en cache exhaustive, on peut en déduire que, quelle que soit la
politique de suppression de cache elle ne sera pas efficace.
Qun et al. (Qun et al. , 2003) proposent un schéma de gestion sémantique de cache
pour accéder à des informations qui dépendent de l'emplacement de l' utilisateur. Ils
abordent des aspects sur le comportement mobile et présentent la gestion du cache et
la manière d' accéder aux données. Ils proposent également une méthode qui permet
de faire la mise en cache des requêtes en fonction de ses composantes : attribut,
prédicat, relation et autre.
Cette approche regroupe les données sous forme de graphe et garde en mémoire les
résultats des requêtes. Elle utilise l'expression (QR, QA, Qp, QL, Qc), où QR représente
les relations de la requête, QA les attributs, Qp les prédicats, QL la position et Qc les
résultats. La figure 2.2 donne une vue sur l' enregistrement de 3 requêtes (Sl , S2 et
S3) dans le cache.
10
L' approche permet de voir l' interaction d' une requête Q avec le cache représenté par
des segments. Si un segment S contient une partie du résultat demandé par la requête
Q, alors on divise Q en deux parties : la partie commune qui est la partie retrouvée
localement et la partie absente. La partie absente est l' autre partie de la requête qui ne
se trouve pas dans le cache mais qu ' on doit récupérer à partir d' un serveur distant.
La faiblesse de leur approche, elle prend en compte les données mobiles et des
utilisateurs mobiles, tout dépend de la position de l' utilisateur mobile. Quand
1' utilisateur et les données sont mobiles, on risque de faire la mise en cache des
d01mées qu' on n' aura pas à réutiliser puisque les 2 objets sont mobiles. La mise en
cache et la suppression des données dans le cache sont contrôlées et validées par la
position des utilisateurs. Tout changement de position affecte les données et les rend
désuètes.
11
Bashir et Qadir ont présenté une teclmique sur le traitement et la mise en cache
sémantique des requêtes. L ' objectif de cette teclmique est de mettre en cache les
requêtes et les projections des requêtes. Dans cette technique ils utilisent un
algorithme de comparaison qui est basé sur les opérateurs de base, l' algorithme
pem1et de comparer des prédicats simples. Ils utilisent une approche à 4- niveau
hiérarchique d' indexation sémantique (4 HiSIS) qm permet de faire la
correspondance entre la requête et la sémantique.
~toCache
t. :$el~l ~~ f.ernp "WG IS~'>~Cihnd.ii$J'K10: 1
1
La faiblesse de leur approche est qu' elle n' a aucun processus défini pour rejeter les
requêtes erronées. Les règles de correspondance des prédicats sont déterminées que
pour les requêtes simples. Il n'y a pas de stratégie définie pour la comparaison
disjonctive et conjonctive des prédicats. Il ne fonctionne que pour les requêtes
SELECT.
12
Sangwon kang et Jongwon Kim (Sangwon et Kim 2006) proposent une stratégie de
cache sémantique de pré-récupération qui met en cache toutes les données que le
client accède. Cette stratégie est fondée sur un modèle client-serveur. Elle fait la mise
en cache sémantique et comprend plusieurs stratégies de remplacement de cache. Elle
permet de maintenir le résultat des requêtes dans le cache.
Elle permet d'améliorer l' accès aux données en utilisant la mémoire cache. Elle
permet également le remplacement de cache. Elle définit un modèle pour traiter les
requêtes qui dépendant de l'emplacement de l' utilisateur. Elle analyse les données
d'accès et la capacité de la mémoire cache.
Dans cette stratégie, le serveur conserve les fichiers journaux transmises par les
utilisateurs, les fichiers journaux sont utilisés pour la prédiction de 1' information de
pré-chargement sémantique. Le client mobile gère la mémoire cache après qu' une
partie de la requête soit vérifiée par le gestionnaire de cache. Si la requête a une partie
qui ne peut pas répondre localement, la stratégie formate la requête. Comme il y a une
partie de la requête dans le serveur local, le reste de la requête est enregistré dans le
référentiel de cache. La mémoire cache remplace son contenu et s'actualise lorsque la
pré-lecture de description est transférée au client.
La faiblesse de cette approche est qu' elle utilise une architecture client-serveur ou la
majorité des tâches sont exécutées et coordonnées par le serveur. Dans un
environnement mobile où le client se déplace d' une station de base à une autre, il est
toujours mieux de ne pas centraliser l'exécution. De plus, le journal des transactions
se trouve sur les stations de base qui peuvent changer trop souvent risquent de causer
un temps de latence dans la transmission de données.
13
Dans (Safaeei, et al., 2008), les auteurs proposent un schéma de cache sémantique
exhaustif qui est en mesure de répondre à tout type de requêtes telles que JOIN et
GROUP.
Dans leur schéma de cache sémantique, ils proposent une structure de mise en cache
des éléments basée sur un modèle graphique formé d' un tableau d'éléments et un
algorithme de gestion des éléments du cache. Ils proposent également un algorithme
de remplacement des éléments qui sera utilisé pour vider le cache lorsqu'il est saturé.
L'algorithme de remplacement fait le meilleur choix des éléments à supprimer en
supprimant des éléments résidents calculable. Un élément calculable est un élément
qu' on peut déduire à partir des données qui sont dans le cache. Malgré la suppression
d' un de ces éléments à partir du cache, il sera toujours calculable à partir des
contenus du cache sans nécessiter de communiquer avec le serveur.
La faiblesse de leur approche est qu' elle ne met pas en cache les requêtes et les
résultats dans le schéma de cache, mais des variables pointeurs qui font référence aux
données, il n'y a pas de coopération entre les données cachées. La suppression de
cache n' est pas efficace, car elle supprime seulement les éléments calculables s'il n'y
14
a pas d' élément calculable aucune formule n' est proposée pour supprimer les données
du cache.
(1) e>a:t rradl (2} s a:rtarirYJ a {3) Cb:rt:irirYJ s (4) o.el~rg (5)d~drt
O QayQ
Figure 2.5 Relation entre la requête et segment émantique de (Qing-jun,
2010)
15
Dans son approche, il a un système de replacement de cache qui gère les cas de
conespondance exacte des contenus et les cas de chevauchement. Lorsqu' il n' y a pas
assez d' espace pour stocker des nouvelles données, les données qui ont le plus petit
nombre de références sont considérées comme partie à remplacer. Il utilise une durée
de vie (TTL) pour chaque objet mise en cache.
La faiblesse de son approche est qu' elle ne propose pas un modèle qui lui est propre.
Elle présente le fonctionnement de plusieurs systèmes de mise en cache et critique les
paramètres qu 'elle trouve inefficaces sans proposer une solution détaillée.
Ils appliquent une nouvelle approche pour répondre à des requêtes à l' aide d'un
mécanisme de cache sémantique coopératif dans l'environnement mobile. Cette
méthode permet de réduire le temps de réponse et d'augmenter le débit du serveur de
gestion de base de données parce que ce serveur ne reçoit que les requêtes auxquelles
le cache ne peut pas répondre.
Dans cette méthode, ils adoptent un régime centralisé, dans lequel le nœud MSS
(Mobile Switching System) joue le rôle de gestionnaire de cache pour le client
mobile. MSS est un pont entre 1' utilisateur mobile et le réseau câblé. Il permet la
performance dans le traitement parallèle et la sauvegarde de la mémoire cache de
chaque cache local du client dans une cellule donnée du réseau.
L' approche CoopSC permet aux clients mobiles d'enregistrer des résultats de requête
en cache local et de rechercher les requêtes dans le cache de collaboration (MSS)
pour obtenir les résultats désirés.
La faiblesse de leur approche est qu ' elle ne traite pas en même temps la mise en
cache des requêtes et des résultats. Elle propose seulement la collaboration entre les
caches sans vraiment mentionner la mise en cache et le remplacement de cache. La
figure 2.6 nous montre la coopération entre les nœuds MMS au serveur.
17
La figure 2.7 nous donne une représentation du processus de traitement des requêtes
de Marcel Karnstedt
18
Use t Int-erface.
(8rowsing, Quetyin9)
Query exeœ.riM
1 -- Q.uef'l p1annlr>g campcnent
can~~ent
, ...._.
........,.,~...
Concept mooogement
campement 1
1 . Je.na
1
l'
RDF-DB
Ar>l
Query Execution
t ~
Cache-OS
Xindice Data .Aécess
-+ 1
We.IJ. Service Client
-
""
XSL'T
F>t OC:$s$&
~
_,./
"'
TransfamMtiM
compoœm
Acce.ss .camponent
·::::::=::::.
J
La faiblesse de cette approche est qu' elle est basée sur 2 sources de dmmées. Si la
réponse de la requête n' est pas disponible dans le cache, la 2e partie de la requête se
dirige directement vers le serveur. Cette approche ne prend pas en compte la
coopération de caches qui stipule que si les résultats ne sont pas disponibles dans le
cache local ils peuvent être disponibles dans un cache distant.
Dans le modèle de Amja A. A, et al. (2011), une approche a été développée pour un
environnement mobile basé sur un réseau 3G. Elle consiste à exécuter des requêtes
sur les bases de données mobiles et distribuées. On fait le traitement des requêtes de
19
Dans l' approche, ils proposent qu ' un client mobile pmsse exécuter une requête
localement en utilisant des données locales. Sinon, le système peut nécessiter la
participation d' un DDN (data directory node) et un ou plusieurs DBN (data base
node). Lorsqu' utilisateur mobile envoie une requête, à son DDN plusieurs cas sont
considérés :
• Le DDN vérifie dans son répertoire local afin de construire le plan à partir
des données qui y sont stockées.
• Le DDN local n' est en mesure d' établir qu' un plan d' exécution de requête
partielle de son propre répertoire. Par conséquent, il vérifie avec le DDN à
distance pour toute information manquante afin de produire un plan
d' exécution complet.
1O.ta• l
Cote.he
ca~
~ ~r
13 Ost9
B 08182
E0...:2
Figure 2.8 Exécution des requêtes en mode déconnecté (Amja et al. , 2011)
La faiblesse de leur approche est que cette approche ne prend pas en compte la
coopération de cache. La réponse de la requête peut être bien disponible sur un autre
nœud sur le même DDN. La technique de coopération entre les caches n 'est pas
exploitée.
20
Kumar, T.V. Vijay et al. (Kumar, T.V. Vijay et al. , 2010) ont proposé une méthode
de génération de plans de traitement de requêtes distribuées. Ils déterminent le
nombre de plans de traitement de requête possibles en fonction du nombre de sites
utilisés par la requête. Ils déterminent ensuite les plans de traitement de requête
optimaux parmi tous les plans possibles. Les auteurs ont présenté un plan de
traitement de requêtes optimal pour répondre au nombre de plans de requête qui
augmente avec le nombre de sites requis. Ils proposent une technique qui permet de
réduire l' espace de recherche et d' avoir un modèle de coût pour accéder à la qualité
de plans de traitement de requête. Les plans de requête ainsi produits sont optimaux.
La génération d' un plan de requête est basée sur l' heuristique qui définit la proximité
relative des données requises pour répondre à la requête de 1' utilisateur. La proximité
est basée sur le nombre de sites concernés dans un plan de requête. Le plan de requête
impliquant moins de sites est considéré et par conséquent est généré. D' autre part, un
plan de requête qui vise un grand nombre de sites, n'est pas considéré et n' est pas
généré.
La faiblesse de cette approche est que les auteurs se contentent de trouver un plan
d' exécution optimal pour la requête en sollicitant tous les nœuds sur le réseau. Les
d01mées cachées ne sont pas considérées
Dans (Komai et al. , 2014), ils proposent deux méthodes de traitement des requêtes
pour réduire le trafic sur le réseau et le maintien d' une haute précision du résultat de
la requête.
Dans ces méthodes, le nœud émetteur transfère une requête utilisant la formule de
géoroutage vers le nœud le plus proche du point spécifié de la requête (un protocole
de géoroutage e t un protocole ba é ur angle de vue adaptatif, pour la tran mi ion
21
des flux). Le nœud le plus proche de la requête pointe vers d' autres nœuds à
proximité du point d' interrogation. Chaque nœud qui reçoit une requête répond avec
ses propres informations. Dans ce processus, ils adoptent deux approches différentes :
.la méthode de l'explosion (EXP) et la méthode spirale (SPI).
Dans la méthode EXP, le nœud le plus proche de la requête inonde les nœuds avec la
requête au sein d'une région circulaire spécifique, et chaque nœud qui reçoit la
requête répond avec ses informations.
Dans la méthode SPI, le nœud le plus proche de la requête achemine vers l' avant la
requête vers d' autres nœuds de manière spirale. Le nœud qui recueille un résultat
satisfaisant transmet le résultat au nœud origine de la requête. Les résultats montrent
que la méthode SPI réduit le volume de trafic et permet d' atteindre une haute
précision des résultats de recherche, en comparaison avec les méthodes existantes.
Dans cette approche, les auteurs se contentent d' acheminer les paquets vers le nœud
destinataire en trouvant le ehemin le plus court et le plus sûr. Mais en aucun cas, ils
ne font attention à la structure des données et la disponibilité des données. Ils ont
supposé que les données sont disponibles et interrogent les sources autant de fois
qu' une requête est effectuée. Les données en cache ne sont pas considérées. La
coopération entre les données des différentes sources n' est pas exploitée.
ceux-là. Selon Poularakis et al. (2014) une bonne stratégie de traitement des requêtes
doit être étroitement liée avec un processus de mise en cache. Alors, pour résoudre
ces problèmes, nous proposons notre approche. Elle consiste à introduire une
nouvelle une stratégie de gestion de cache intelligente et une méthodologie
d'exécution des requêtes.
23
CHAPITRE III
ARCHITECTURE PROPOSÉE
La mise en cache des fichiers statiques pem1et d' économiser du temps au chargement
des fichiers ciblés dans le futur. Dans un cache sémantique, la description sémantique
ainsi que les données effectives sont stockées dans la mémoire cache. Les requêtes
entrantes des utilisateurs sont comparées avec la sémantique des requêtes exécutées
précédemment. (Qun et al. , 2003) , (Dar et al. , 1996). La mise en cache des éléments
de données fréquemment consultées du côté client est une technique efficace pour
24
Une mémoire cache est une mémoire qui enregistre temporairement une copie des
données provenant d' une autre source afin de diminuer le temps d ' accès à ces
données. Pour traiter les requêtes des bases de données mobiles et répa1iies, le recours
aux données mises en cache est considéré comme une alternative. Normalement, la
mémoire cache est organisée de trois façons : comme une page de mémoire, un tuple
de mémoire, et un cache sémantique.
Un tuple de mémoire est une mémoire associative partagée via laquelle des
processus distincts peuvent communiquer, conserver des données et
coordonner leurs actions. C ' est une liste de données typées et de longueur
arbitraire.
• Une page de mémoire ou une mise en cache de page est à bien des égards
analogue à la mise en cache d' un tuple. La différence principale étant qu' avec
la mise en cache, le client d' un tuple cache est maintenue en termes d'individu
tuple alors que dans la mise en cache de page ils sont des pages entières.
• Le cache sémantique est un tableau de données regroupé par une structure
« relation, attribut, prédicat ». Il permet de raisonner sur les données mises en
cache.
L ' architecture que nous proposons est un système de cache sémantique. C ' est une
an1élioration de la proposition de (Safaeei, et al. , 2008), (Qun et Kumar, 2003).
Cette architecture met en cache les requêtes et les résultats des requêtes précédentes
et s' en sert pour répondre à de nouvelles requêtes. Elle est basée sur la réutilisation
des contenus du cache.
25
Avec le cache sémantique, les clients mobiles conservent à la fois une description
sémantique de la requête et les réponses associées aux requêtes précédentes dans le
cache. Cette structure permet de répondre à une nouvelle requête sans avoir besoin de
communiquer avec le serveur. Si la requête ne peut être que partiellement répondue,
cette requête doit être découpée en deux parties : une partie qui est localement
disponible dans le cache et le reste de la requête (Dar et al. , 1996). De ce fait, pour
construire notre base de données cachée, nous utilisons un algorithme qui fait la mise
en cache lors de chaque requête.
L' algorithme effectue un contrôle d' admission de cache sur les résultats de la requête
pour décider s' il peut mettre en cache les données de la requête. Il met en cache les
données des requêtes dans le cas où toutes les données ou une certaine partie des
données de la requête n' existent pas encore dans le cache. L' algorithme doit
permettre aux clients de stocker les résultats des vieilles requêtes et de les utiliser
toute ou une partie de ces résultats si les paramètres de celles-ci sont proches ou
incluent les paramètres de la nouvelle requête pour répondre à ses requêtes.
La figure 3.1 faite une représentation graphique d' un utilisateur mobile est sa base de
données cachée.
26
S Relation
UM
1. La mise en cache
2. Le remplacement du cache
3. Le gestionnaire de cache
Elle détermine les composants de la requête pour vérifier l' existence de ses éléments
dans le cache ainsi que la valeur de chaque élément afin de déterminer si ces éléments
doivent être sauvegardés dans le cache.
27
C' est un schéma exhaustif qui doit être capable de répondre à tous les types de
requêtes telles que les jointures (JOIN) et les groupes (GROUP BY).
C'est une représentation des différents éléments que le système va mettre en cache.
Elle est divisée en deux parties : a) le cache des requêtes et b) le cache des résultats.
C' est une représentation des différents éléments que peut contenir une requête. Cette
structure est présentée sous forme d'un tableau. Elle met en cache toutes les
séquences de la requête.
Elle va d' abord diviser la requête en relations, attributs, et prédicats pour ensuite
insérer les éléments dans le tableau en fonction de leur groupe. Dans le cas où une
requête ne spécifie pas des attributs et/ou des prédicats, elle va mettre en cache la
structure de la table ou des tables sur lesquelles la requête a été exécutée. Plusieurs
cas peuvent se présenter :
• Cas 1 : Exécution d'une requête quand les attributs, les prédicats et les
relations sont précisés. Exemple :
QR = Relation
QA = Attribut
Qp = Prédicat
Qc = Résultat
Ainsi la décomposition de chaque élément d'une requête se fait pour faciliter la mise
en cache et la correspondance à la prochaine requête. Voici un exemple de
décomposition <;le la requête précédente :
• Cas 2 : Exécution d' une requête dans le cas où les attributs, les prédicats et les
relations ne sont pas précisés. Exemple :
QR =employé, QA= ID _Emp, Nom, prénom , age, sai, département Qp= NULL
Dans une telle situation, nous prendrons en compte tous les attributs de la table
spécifiée sans se soucie des prédicats.
Tableau 3.2 Mise en cache d' une requête sans spécification des prédicats.
La mise en cache des éléments de réponse d' une requête est l' un des objectifs de
notre architecture. Pour chaque nouvelle requête effectuée auprès d' w1e base de
données distante, notre architecture fait la mise en cache de la requête ainsi que sa
réponse. Elle crée une variable pointeur faisant référence à l' adresse de la réponse
dans la table des requêtes afin de préciser 1' emplacement des éléments de la réponse.
Cas 1 : Exécution d' une requête quand des contraintes ont été appliquées à la requête.
Nous avons le résultat qui suit :
CI
Tableau 3.3 La mise en cache des résultats d' une requête avec précision
30
Dans ce tableau, nous faisons la mise en cache seulement des attributs qui ont été
spécifiés dans la requête. Tout autre élément non mentionné dans la requête n'est pas
considéré.
C4
Tableau 3.4 La mise en cache des résultats d' une requête sans précision
Notre approche fait une mise en cache de toutes les réponses venant d' une source de
données externe sauf dans les cas suivants :
• Quand une réponse est déterminée invalide : une réponse est invalide quand la
réponse contient que des valeurs résidant dans le cache ou si la requête
n' aboutit pas à une réponse;
• Quand la mémoire cache est saturée : dans ce cas, la mise en cache sera
impossible. Alors on fait appel au processus de remplacement de cache avant
de débuter l'activité de mise en cache.
• Quand la réponse d' une requête n' est pas spécifiée ou comporte un grand
nombre d' éléments de données: la réponse est considérée comme une réponse
qui risque de perturber le bon fonctionnement de la cache mémoire. Cette
réponse ne sera pas cachée.
Ex. : select * from Étudiant;
En raison de la taille limitée de 1' espace de stockage du cache, en tenant compte des
données à cacher, il est impossible d'envisager une mise en cache sans une politique
de remplacement de données (Yin et al. , 2003). Par conséquent, le recours à des
algorithmes et formules pour libérer de l' espace mémoire en cache est indispensable.
• La disponibilité d' espace dans le cache avant chaque mise en cache. Afm
d' assurer si la mise en cache nous effectuons une surpression de données dans le
cache. Si la suppression est obligatoire par manque d'espace, alors nous faisons
une vérification pour déterminer la présence des données calculables.
Dans tous autres cas, si 1' espace de stockage est saturé et il ne contient pas de donnée
calculable l'algorithme LRU (Last Recently Used) sera utilisé pour remplacer les
données dans le cache.
L' algorithme suivant est présenté en vue de donner une idée de la justification de la
méthode proposée.
33
Cacheltemreplacement(C)
*/Cachesup = élément à supprimer*/
*/Cachese/ =élément calculable*/
Cachesup ~ LRU(C);
El se
*/si une ou plusieurs solutions calculables existent dans le cache */
If (count(Cachesel}>l) then
*/alors, supprimer les solutions calculables les moins récemment utilisées*/
Cachesup ~ LRU(Cachesel);
*/si une ou plusieurs solutions calculables existent dans Cachesup *1
If (count(Cachesup)>l) then
Cachesup ~ LRU(Cachesup);
}
}
t,
R3
R3 b
A) B) C)
Données cachées Données calculable Données cachées après suppression
aux données cachées par les autres utilisateurs. La disponibilité des données sur un
utilisateur de la cellule contribuera à répondre aux requêtes effectuées dans la cellule.
( )
0 UM
UM
~ ..
UM
UM
~tlonnatr~ d.e cachE;)
Nous proposons d' utiliser une réplication de données au niveau de la station de base
dans le but d' augmenter la disponibilité des données dans la cellule afin que même
dans le cas où 1' utilisateur mobile est partiellement connecté ses données soient
toujours disponibles. Nous proposons d' utiliser un système de réplication à faible
coût et qui garde en mémoire les données tant que l' utilisateur est connecté à la même
station de base. Quand un utilisateur mobile change de cellule, un transfert de
responsabilité est fait et la suppression de données répliquées de 1' utilisateur est faite.
Notre architecture fonctionne de manière centralisée: l' eNodeB sélectionné par Je
client mobile joue le rôle de gestionnaire de cache centralisé. Dans l' exécution d' une
requête, la priorité est accordée au cache local. La réponse de toutes requêtes non
36
satisfaites localement doit passer d' abord par le centre de gestion de cache avant
même de tenter toute possibilité de propagation de la requête.
MME HSS/PCRF
51 -C 56 a
JJ
51U 51 -C
X2 S11 G.xe
57 /Gx
CHAPITRE IV
Le traitement des requêtes dans l' environnement mobile est vaste et assez complexe.
Ces dernières années ont vu la popularité des téléphones intelligents et les tablettes.
Le trafic mobile de données généré en 2014 était près de 30 fois la taille de
l' ensemble du réseau Internet mondial en 2000, et le trafic mobile mondial continuera
de croître à un taux de croissance annuel composé de 57% de 2014 à 2019. En
d' autres termes, il va augmenter de 10 fois et atteindre 24,3 Exaoctets (Eo) par mois
d' ici 2019 (Cisco Visual Networking Index). Cette énorme quantité de trafic de
données dégrade la qualité du service et crée une énorme pression sur le spectre
limité de réseaux cellulaires. [AT&T Throttling The ir Smartphone Customers]
Le traitement d' une requête permet de solliciter une base de données en vue d' obtenir
un élément de réponse pour cette requête. La base de données sollicitée lors d' une
requête peut être centralisée ou distribuée. Une base de données distribuée est une
collection de bases de données localisées sur différents sites, généralement distants,
mises en relations les uns avec les autres à travers un réseau et perçue pour
38
l' utilisateur comme une base de données centralisée. Elle permet de rassembler des
données, disséminées dans le réseau sous forme d'une base de données intégrée.
Dans le traitement des requêtes dans un environnement mobile, on fait face à des
entités comme les données, les utilisateurs, etc. Ces entités-là peuvent être statiques
ou mobiles. Par conséquent, 4 situations peuvent se présenter :
• Base de données mobile et utilisateur fixe : c' est la catégorie des requêtes
émises à partir de terminaux fixes qui interrogent des données liées à des
objets mobiles;
• Base de données fixe et utilisateur fixe : catégorie des requêtes émises à partir
des terminaux fixes qui interrogent des données liées à des objets fixes.
Dans notre architecture, nous nous concentrons sur les bases de données fixes et
distribuées avec des utilisateurs mobiles. Nos données sont fixes du fait que nos
données sont enregistrées sur des serveurs fixes ou des préenregistrées sur des BTS et
que nos données n' ont rien à voir avec la position géographique du client. Précisons
que le déplacement d' un utilisateur à travers d autres cellules n' affectera pas la valeur
de retour des requêtes sauf que le temps de traitement peut varier en fonction de la
disponibilité des données. Ca veut dire les utilisateurs sont mobiles et que la
résolution des requêtes ne dépend pas de la position de l' utilisateur.
- -- -- - - - -- - -
39
Selon le mode de fonctionnement des utilisateurs mobiles, dans l' environnement LTE
au moment de déplacement d' un utilisateur dans une zone de couverture, il est
desservi même BTS quelque soit sa vitesse de déplacement à travers les cellules et
quelques soit sa position (Madria et al., 2002). Quand un utilisateur mobile arrive
dans une situation où il doit changer de cellule un transfert de responsabilité est fait
entre un eNodeB courant et le nouveau eNodeB qui prend en charge l' utilisateur. Une
fois connecté, l' utilisateur est sous le contrôle de ce BTS jusqu' à ce qu ' ille quitte ou
qu ' il soit en mode d' inactivité. Ce mode est caractérisé par l' absence d' échange
d' informations. Un utilisateur peut être dans différents états : connecté, semi-
connecté et déconnecté. En tenant compte du fait que les utilisateurs mobiles peuvent
changer d' état, cela implique que le traitement des requêtes doit s' adapter à ces
différents états.
En tenant compte de ses différents facteurs, nous pouvons déduire que le coût de
traitement d' une requête dans l' environnement mobile dépend de plusieurs
paramètres qui peuvent faire augmenter ou diminuer le temps de traitement voire
même à l' insatisfaction des réponses. Pour pallier à ces problèmes, nous présentons
une nouvelle approche. L' objectif n' est pas d' éliminer ces contraintes, car elles sont
inévitables et font partie intégrante de l'environnement mobile, mais de trouver un
moyen de maximiser les performances dans l' environnement mobile et de donner des
résultats satisfaisants. Dans notre approche nous nous contentons de proposer un
mécanisme qui retourner les réponses précises aux requêtes et de réduire le temps de
réponse.
En utilisant la sémantique sur les éléments stockés dans le cache, les clients mobiles
sont capables de raisonner pour déterminer si une requête peut être totalement
répondue à partir du cache ou quelle partie de la requête peut être répondue, et quelles
sont les données manquantes. (Qun et al. , 2003).
40
L'idée de la mise en cache sémantique est que le client conserve dans le cache la
description sémantique et les résultats des requêtes précédentes (Qun et al., 2000).
Une telle approche est très bénéfique lors qu'un utilisateur mobile est en mode semi-
déconnecté. L'appareil mobile sera en mesure de répondre à un certain nombre de
requêtes et sera obligé de traiter les requêtes en fonction des données stockées dans le
cache. Les politiques de routage et de mise en cache doivent être conçus
conjointement (Poularakis et al., 2014) afin que chaque requête et sous-requête
puissent être dirigée vers la base de données concernée. Un interpréteur de requêtes
sera en mesure de distinguer la partie cachée dans une requête (Remainder) et la
partie manquante (Probe) (Marcel et al. , 2003), (Franklin et al; 1996). Un distributeur
de requêtes (Map Query) sera en mesure de distribuer chaque sous-requête aux
sources de données qui peuvent le traiter. Ça peut être le cache local, le cache distant
ou une base de données distante.
Cette architecture a été choisie pour résoudre les problèmes que nous avons
mentionnés dans les chapitres précédents. Elle est composée des éléments suivants :
l'Utilisateur mobile (UM), le processeur des requêtes (Q. Processor), la base de
données cachée (BC) le Gestionnaire de cache (OC) et la base de données Serveur
(BS). Notre architecture de traitement des requêtes est représentée dans la Figure 4.1
41
GC
BS
Register
Q. Analyser
requête pour les autres composants de l' architecture. Il utilise l'algorithme de (Ali
et al. , 2010) conçu sur un schéma de graphe sémantique basé sur l'indexation des
requêtes.
• Register: c' est l' interface de communication avec la base de données cachée. Il
vérifie le contenu de la base de données en cache et garde une description ajout
des contenus pr ' sents dans le cache. Quand il reçoit une requête de l' analyseur, il
compare les relations, attributs, prédicats de la requête avec les éléments de la
base de données cachée en vue de déterminer si le cache peut répondre la requête
partiellement ou entièrement.
• Request Rewriter : il décompose la requête en fonction des données disponibles
dans le cache et dans les bases de données distantes. Ensuite, il effectue la
réécriture de la requête.
• Request Map : il distribue les sous-requêtes vers les sources d' exécution. Les
requêtes qui vont être traitées localement sont envoyées à la base de données
cachée et les requêtes qui vont traiter sur les serveurs distants seront envoyées aux
bases de données distantes.
• Request Executor : il exécute la requête auprès de la base de données spécifiée en
vue d' obtenir le résultat attendu. Quand les résultats des sous-requêtes sont
arrivés, il fait la fusion des différentes parcelles des résultats en un seul résultat et
l' achemine vers le RU
Notre architecture d' exécution de requêtes prend en compte la requête du client et fait
une analyse sur la requête dans le but de dissocier le probe query et le remainder
query de la requête afin de pouvoir réécrire la requête de manière optimisée pour
réduire le temps d'exécution. Cette teclmique a été utilisée dans le passé par Marcel
(Marcel et al. , 2003).
43
La mobilité ex1ge qu' un utilisateur mobile doive être en mesure d' accéder aux
données souhaitées à partir de n' importe quelle cellule (Madria et al. , 2002). Pour se
faire, un nouveau lien de communication est établi à chaque fois qu' un utilisateur
mobile_change de cellule. Ce processus de transfert de cellule est transparent et est
responsable du maintien de la connectivité. Dans un tel processus, chaque eNodeB va
stocker des informations telles que le profil de l' utilisateur, les fichiers de connexion,
et les droits d' accès de l' utilisateur mobile.
Dans ce contexte, une demande (D) est créée lorsqu ' un utilisateur mobile effectue
une requête pour un élément de donnée. Il y a 3 sources possibles pour satisfaire la
demande d'un client :
La requête de l' utilisateur venant de l' appareil mobile et s'achemine vers l' Analyseur
de requêtes (Q. Analyser). L'Analyseur des requêtes vérifie le contenu de la requête
et décompose les éléments de la requête en attributs, prédicats et relations. Il utilise
l' algorithme de (Munir et al., 2010) conçu sur un schéma de graphe sémantique basé
sur l' indexation des requêtes. Il envoie la requête au Registre et au Request Rewriter.
Le Registre vérifie la disponibilité des données de la requête dans le cache selon la
structure du graphe de mise en cache et communique les résultats au Request
Rewriter.
résultat W1ique auprès de l' utilisateur. Ce processus est décrit dans l'algorithme ci-
dessous (Figure 4.3).
Cm = Gestionnaire de cache
Db = Base de données
Res ult = Résultat de la requête
Flagcache =donnée à cacher*/
lF (G (Q) = C) then {
Result f3 Qc
ELSE
*/si généralement une partie de Q est dans C */
tlagcache f3 Qcm;
ELSE
reslut 13 Qc,,Qcm, Qob;
Result;
Nous présentons notre stratégie pour l' exécution des requêtes . Pour alléger
l' explication, nous présentons le traitement des requêtes SQL de type select.
Plusieurs cas se présentent :
• Requête locale : une requête locale est une requête qui affecte une ou
plusieurs tables dans une base de données qui peut être satisfaite par la base
de données cachée.
46
• Requête distante : une requête distante est une requête qui affecte une ou
plusieurs bases de données qm ne sont pas disponibles localement.
L' exécution d' une telle requête nécessite l' appel des bases de données
distantes.
• Requête mixte : une requête mixte est une requête qui affecte à la fois des
données localement disponibles et des données distantes. L'exécution d'une
telle requête nécessite donc l' appel des bases de données cachées et/ou de
bases de données distantes.
Dans les stratégies de traitement des requêtes, l' existence d' une requête mono-
relationnelle ou multi-relationnelle n' a pas d'importance parce que le schéma
d'exécution ne changera pas.
FROM ruche
47
-
...- .....
~ ....--
~ .._,---x------~
~ Du &Ru
Do& Ro~~~-~-----------B-C-X--------------w.-==
UM
GC
~ ""''Il
...... .........
x .... .....
....... ......
--..... ~
BS
La demande de l'utilisateur (DU) est envoyée d' abord vers la base de données cachée
(BC). Celle-ci a la possibilité de répondre complètement à la demande alors une
réponse est acheminée à l' utilisateur (RU). Selon les mêmes principes dans la
méthode spirale (SPI) de Komai et al., 2014, le nœud qui recueille un résultat
satisfaisant transmet le résultat au nœud de délivrance de la requête. Il n'y a pas de
propagation de la requête quand la demande est entièrement satisfaite. Il n'y a pas de
communication avec les autres nœuds GC et BS.
Montréal -12° c
FROM ruche
Dans cet exemple, nous supposons que la base de données cachée (BC) est vide, mais
le gestionnaire de cache contient les données suffisantes pour répondre à la requête.
Alors on aura le diagramme d'exécution suivant :
BS
Une demande DU est créée pour l' utilisateur mobile. La demande est envoyée vers la
base de données cachée pour trouver une réponse. La base de données cachée étant
vide, elle ne peut pas répondre à la demande. L ' absence de réponse de BC suscite la
redirection de la requête auprès du gestionnaire de cache qui à son tour va répondre à
la requête. Comme la base de données du gestionnaire de cache parvient à répondre
complètement la requête, alors la réponse est envoyée à l' utilisateur, il n' y a pas
d' autre propagation. La base de données serveur n' est pas sollicitée.
Vancouver -5 ° c
49
FROM ruche
Supposons que dans cet exemple la base de données ca~hée (BC) contient une partie
de la requête et 1' autre partie de la requête se trouve dans les bases de données
distantes plus précisément dans le gestionnaire de caches. Alors nous aurons le
processus d'exécution suivant:
,..... ........_
......
....
...... ....,1111111
~ ~
BS
Une demande DU est créée pour l' utilisateur mobile. La demande est envoyée vers la
base de données cachée (BC) pour trouver une réponse. La base de données cachée ne
parvient pas à satisfaire la requête au complet, mais une partie de la demande a été
satisfaite. La partie non satisfaite de la requête va être redirigée auprès du
gestionnaire de cache. Celui-ci va tenter de répondre à la requête. Si la base de
données du gestionnaire de cache parvient à répondre complètement à cette sous-
50
requête, alors la réponse est envoyée à l' utilisateur. Il n 'y a pas d'autre propagation
vers la base de données serveur (BS), car la requête est complètement satisfaite et la
base de données serveur n' est pas sollicitée.
Montréal -12 ° c
Vancouver -5 oC
4.5.4 Exécution locale et distante mixte : Stratégie d ' exécution quand la réponse
est à la fois dans la BC, le GC et le BS
Dans cet exemple, nous supposons que les informations que contiennent les bases de
données cachées (BC) et le gestionnaire de cache (GC) ne peuvent pas satisfaire
complètement la requête. Par contre, une partie de la requête doit être exécutée auprès
de la base de données serveur qui est 1' unique source de donnée contenant
l' information. Alors, on aura le diagramme d' exécution suivant:
BS
Une demande (DU) est créée pour l' utilisateur, la demande est envoyée vers de la
base de données cachée (BC) pour trouver une réponse. La base de données cachée ne
peut pas répondre à la demande complètement, mais une partie de la demande a été
traitée (RU). La partie non satisfaite de la demande va être redirigée auprès du
gestionnaire de cache qui à son tour va tenter de répondre à la requête. Si la base de
données du gestionnaire de cache ne peut pas répondre elle aussi qu'à une partie du
reste de la requête, alors une partie de la réponse est envoyée à 1' utilisateur (RU). Le
reste de la requête se dirige vers la base de données serveur qui va traiter à son tour le
reste de la demande et envoie la réponse à l' utilisateur.
52
CHAPITRE V
Nous avons proposé une stratégie de recherche qui sera capable de réduire le trafic
sur l' infrastructure de communication et de résorber les goulots d' étranglement. Cette
approche améliore la perfonnance des requêtes des utilisateurs sur le réseau mobile
de type LTE. Son rôle est de répondre efficacement aux requêtes des utilisateurs à
l'aide des contenus déjà calculés ou précompilés. Cela évite de refaire le travail à
chaque itération. Dans ce chapitre, nous allons montrer la justification de notre
approche. Les objectifs de ce chapitre sont: (i) évaluer les performances de notre
proposition, et (ii) étudier les impacts
Lors d' une simulation d' un protocole ou d ' un algorithme plusieurs phases sont
indispensables comme : (i) la défmition du problème (ii) la construction du modèle
(iii) la simulation et (iv) l' analyse des résultats en vue de prendre une décision. Dans
le cadre de notre projet, le simulateur open source le mieux adapté et capable de
traiter le comportement des équipements dans l' environnement mobile est le ns-3. Vu
les limites et le manque de modules dédiés au traitement des requêtes dans
l' environnement mobile, nous nous contentons de présenter des études de cas.
Dans le but d' effectuer une étude de performance de notre stratégie de mise en cache
et de traitement des requêtes, certains facteurs peuvent affecter les résultats. Dans les
réseaux à faibles débits et fortes latences comme les réseaux sans fil , le transfert des
résultats peut être important. Ainsi , nous calculons une estimation du temps de
traitement des requêtes (TTr), une estimation du temps de transfert des résultats
(TTrans) et une estimation du coût de traitement de la requête (CTr).
• Temps de transfert
C' est le temps écoulé entre l' envoi de la demande de l' utilisateur ((Ts) vers la base de
données et le temps de réception des données de réponse après traitement (T R). Le
total du temps d' envoi et de réception noté par TTrans= T s + T R·
.... ....
......""" - ....
....
UM
GC
BS
Le temps d' envoi (Ts 1) et le temps de réponse (TR 1) sont le temps que prend le
processus pour transférer les données entre 1'UM et la base de données cachée. Le
temps d' envoi et de réception vers le gestionnaire de cache est Ts2 & T R2. Le Ts3 &
T R3 est le temps pour 1' envoi et la réception des dmmées vers la base de donnée
serveur.
Selon le plan d' exécution des requêtes, chaque nœud a la possibilité de répondre à sa
propre requête ou à une partie de la requête. Quand la réponse est déduite directement
du nœud émetteur de la requête le temps de chargement est beaucoup plus rapide que
si la réponse venait du GC et encore plus rapide que si la réponse devait venir du
serveur de donnée di tante BS.
55
Dans ce cas, nous supposons que les données sont disponibles localement (BC),
quand le cache peut répondre la requête de 1' utilisateur la vitesse de transfert est
négligeable ou elle est proportionnelle à la vitesse de traitement de l' appareil mobile.
Dans ce cas, il n' y a pas de transfert externe, le débit du réseau n' est pas considéré et
il n' y a pas de consommation des données mobile. La figure 5.2 illustre une situation
ou les données sont stockés dans le cache et que le temps te transfert de données est
négligeable.
&
UM
GC
BS
La figure 5.2 est une représentation d'un traitement de requête avec des données
internes. La requête est exécutée directement sur la base de données cachée. Les
autres sources de données ne sont pas sollicitées. Ce qui permet un coût de traitement
très avantageux par rapport au modèle de traitement des données mobiles actuelles.
Dans cet exemple, la performance du coût de traitement est estimée à 95 %, le temps
de lecture du cache, le temps d'envoi et le temps de réception sont estimés à 5 %.
Dans cette situation, nous supposons que les données susceptibles de répondre à la
requête se trouvent entre la BC et le GC. Dans une telle situation, la requête doit
récupérer les informations des 2 sources de données afin de répondre pleinement à la
demande. Le débit maximal de transfert de données dans le réseau LTE est 100 Mb/s.
En utilisation réelle, la vitesse d'envoi peut atteindre 15Mb/s et la vitesse de
réception 30Mb/s. (Guangxiang et Jucai, 2010) alors quand les données sont
disponibles dans le eNodeB, le coût de traitement des données va augmenter avec
l' ajout du temps d' envoi et de réception de la demande de l' utilisateur vers l' eNodeB
(GC). Le processus d' exécution est illustré par la figure 5.3.
GC
,. """""'i
......
lillo..
x .... ....olll
.... ....olll
-...... ~
BS
Dans cet exemple, nous pouvons constater qu' il y a un temps de transfert pour chaque
source de données. Il y a aussi un temps de traitement avec une vitesse de transfert de
15 Mb/s en envoi et 30 Mb/s en réception. Cela va augmenter le coût de traitement de
la requête, mais encore une fois, le coût de la requête ne sera pas trop élevé, car les
données cachées dans le GC sont considérées comme un moyen plus rapide d' accéder
aux données non disponibles sur l'utilisateur mobile.
Supposons que les données sont distribuées dans plusieurs sources de données. Ça
augmente le coût de traitement de la requête en ajoutant un temps de transfert pour
chaque source de données et les coûts des traitements distants. Dans une telle
situation, les n sources de données reçoivent leurs sous-requêtes, effectuent leur
traitement et acheminent les résultats de leur traitement vers l' utilisateur mobile.
Pour chaque source de données, nous aurons un temps d' envoi (Ts) et un temps de
réponse (T R). La figure 5.4 illustre une stratégie d' exécution de requête avec 3
sources de données (BC, GC et BS).
BS
• Utilisateur mobile
o La capacité énergétique.
o La couverture réseau.
iPhone 55 36 47 10,7
Samsung G Note 5 68 55 10
60
40
20
0
lphonr 6 !phone 55 Samsung G Note 5 Samsun G 54
Dans le but d'avoir une étude détaillée sur les tests de vitesse, nous avons utilisé
1'application « Speedtest » pour effectuer des tests de latence sur le réseau Vidéotron
en utilisant ·un iPhone 5s. Ces tests sont faits à des intervalles proches, mais à la
même position. Nous avons constaté une variation sur les différents résultats de la
simulation. À chaque simulation, nous constatons un écart sur les débits en amont et
en aval et le temps de traitement. La figure 5.6 nous donne une idée sur les différentes
variations.
61
29 RÉSULTATS ~
@)
,l; 0 1'
Tr"E HEUlE :l =: ::-! T Cl E~CE~~ :L\ \ T [:ES T ~ ." C1 • ~ 1,\ \ -
.....
1 0 janv.
T..• 2016
04:09
47.09 10.75 36
1 0 janv.
T... 2016
04:08
55.55 12.05 33
1 0 janv.
T..• 2016
03:48
46.77 17.44 35
1 0 janv.
~:>
T..• 2016
03:47
43.89 12.39 37
··.~;-
1 0 janv.
T..• 2016
03:46
53.53 6.35 36
1 0 janv.
T..• 2016
03:17
36.14 14.53 29
Avec notre méthode, nous pouvons constater les résultats suivants selon divers
critères :
CONCLUSION GÉNÉRALE
Dans ce mémoire, nous nous sommes intéressés à la mise en cache et aux traitements
des requêtes dans l'environnement mobile afin d' optimiser le traitement des requêtes
dans une base de données mobile et distribuée.
Nous avons montré que l' utilisation d' un cache sémantique intelligent et réparti
permet d' améliorer le débit transactionnel d' une base de données mobile dans
1' environnement réseau L TE. Avant d' introduire notre modèle, nous avons présenté
une revue des principales approches existantes en mettant l' accent sur les modèles qui
reflètent le mieux notre approche. Nous avons apporté des arguments pour la
nécessité d' un modèle simple. Notre modèle permettrait de faire la mise en cache des
requêtes et leurs résultats. Il permet d' utiliser en retour ces résultats pour répondre
aux futures requêtes dans l'environnement mobile.
Dans le chapitre 5, nous présentons des résultats de notre approche. Nous avons
énuméré et évalué les facteurs de performance. Nous avons montré qu' avec la
disponibilité des données dans le cache, le temps de traitement des requêtes sera
réduit de manière sensible nous avons effectué des calculs sur des résultats en
fonction des normes de 1' environnement du réseau LTE.
65
RÉFÉRENCES
Barbara, D. (1999). Mobile computing and databases a survey. Knowledge and Data
Engineering, IEEE Transactions on, 11 ( 1), 108-117.
Dar, S., Franklin, M. J., Jonsson, B.T., Srivastava, D., et Tan, M. (Septembre, 1996).
Semantic data caching and replacement. In VLDB (Vol. 96, pp. 330-341).
Godfrey, P., et Gryz, J. (Aout, 1997). Semantic Query Caching for Hetereogeneous
Databases. In KRDB (pp. 6-1 ).
67
Kang, S. W. , Kim; J. , lm, S., Jung, H. , et Hwang, C. S. (Juin, 2006). Cache Strategies
for Semantic Prefetching Data. In Web -Age Information Management Workshops,
2006. WAIM'06. Seventh International Conference on (pp. 7-7). IEEE.
Olston, C., et Widom, J. (Juin, 2002). Best-effort cache synchronization with source
cooperation. In Proceedings of the 2002 ACM SIGMOD international conference on
Management of data (pp. 73-84). ACM.
Ren, Q., et Dunham, M. H. (Aout, 2000). Using semantic caching to manage location
dependent data in mobile computing. In Proceedings of the 6th annual international
conference on Mobile computing and networking (pp. 210-221 ). ACM.
AT&T (2014, Juin). Throttling Their Smartphone Customers to Deal with Spectrum
Shortage. Récupéré à http: //u2l.info/1nkLbB
Cisco Visual Networking Index (2014) Global Mobile Data Traffic Forecast Update,
2014-2019. Récupéré à http://u2l.info/1NoUTo.
Apple (2015 , decembre) Mode faible consommation sur les iPhones. Récupéré à
https ://developer.apple.com/library/ios/documentation/Performance/Conceptual/Ener
gyGuide-iOS/LowPowerMode.html.