Using Semantic Caching Using Semantic Caching to Manage Location to Manage Location
Dependent Data in Mobile Dependent Data in Mobile ComputingComputing
(2000)(2000)
Qun Ren, Margaret H. DunhamQun Ren, Margaret H. DunhamSouthern Methodist University Southern Methodist University
Dallas, TexasDallas, Texas
PlanPlan
IntroductionIntroduction
Etat de l’artEtat de l’art
MéthodesMéthodes
Etude de performanceEtude de performance
ConclusionsConclusions
Introduction (1/3)Introduction (1/3)
Domaine d’étudeDomaine d’étude: : l’environnement mobilel’environnement mobileLDD: Location dependent dataLDD: Location dependent data Valeur dépendante de la position à laquelle la Valeur dépendante de la position à laquelle la
donnée est sémantiquement reliée donnée est sémantiquement reliée
LDD Query: requête processée sur des LDD LDD Query: requête processée sur des LDD Les résultats dépendent du critère de position Les résultats dépendent du critère de position Les résultats peuvent changer si l’utilisateur Les résultats peuvent changer si l’utilisateur
change de position change de position
Introduction (2/3)Introduction (2/3)
Exemple LDD Query:Exemple LDD Query: demander les restaurants demander les restaurants les plus prochesles plus proches
Aspect continu de la requêteAspect continu de la requête
Chevauchement entre les résultats Chevauchement entre les résultats
Utilisation du cache (coté client) pour Utilisation du cache (coté client) pour augmenter la performanceaugmenter la performance
Introduction (3/3)Introduction (3/3)Semantic cachingSemantic caching
Localisation sémantique, plutôt que statique Localisation sémantique, plutôt que statique
Page et tuple caching sont pas adaptésPage et tuple caching sont pas adaptés
Réduire les accès coûteux au serveurRéduire les accès coûteux au serveur
Gestion possible de la part de l’utilisateurGestion possible de la part de l’utilisateur
Etat de l’art (1/3)Etat de l’art (1/3)
Modélisation du mouvementModélisation du mouvement
MOSTMOSTModèle pour représenter des objets en mouvement Modèle pour représenter des objets en mouvement dans une base de donnéesdans une base de donnéesAttribut dynamique composé: valeur, date de mise à Attribut dynamique composé: valeur, date de mise à jour, fonction indicatrice du changement de la valeurjour, fonction indicatrice du changement de la valeurProblème d’indexationProblème d’indexation
Notre cas: les données sont dépendantes Notre cas: les données sont dépendantes d’une position (LDD), mais elles ne sont pas d’une position (LDD), mais elles ne sont pas dynamiquesdynamiques
Etat de l’art (2/3)Etat de l’art (2/3)
Traiter Traiter les LDD comme des replicas spatiales les LDD comme des replicas spatiales de la BD liées fortement à une certaine région de la BD liées fortement à une certaine région
La primitive La primitive nearcast nearcast pour localiser le serveur pour localiser le serveur couvrant l’information demandéecouvrant l’information demandée
Problème de l’actualité du cached LDD suite au:Problème de l’actualité du cached LDD suite au: Mise à jour fait par le serveurMise à jour fait par le serveur Mouvement du client mobile Mouvement du client mobile
Etat de l’art (3/3)Etat de l’art (3/3)
Solution: attacher aux résultats des informations Solution: attacher aux résultats des informations supplémentaires concernant la validité supplémentaires concernant la validité
Semantic CachingSemantic Caching Query: une partie des réponses dans le cache, Query: une partie des réponses dans le cache,
une partie provenant du serveurune partie provenant du serveur Stockage et index: segments sémantiquesStockage et index: segments sémantiques Remplacement: basé sur la Manhattan distance Remplacement: basé sur la Manhattan distance
entre la requête et les régions sémantiquesentre la requête et les régions sémantiques
MéthodesMéthodes
Modélisation de la requête LDDModélisation de la requête LDD Position: un doublet d’entiers (Lx,Ly) Position: un doublet d’entiers (Lx,Ly) Vitesse: un vecteur d’entiers <Vx,Vy>Vitesse: un vecteur d’entiers <Vx,Vy> Quantification temporelle Quantification temporelle Requête LDD: tuple Requête LDD: tuple (QR, QA, QP, QL, QC) où(QR, QA, QP, QL, QC) où
QR - QR - relationrelation appartenant àappartenant à la BDla BD
QA QA représente les attributs utilesreprésente les attributs utiles
QP - QP - le prédicatle prédicat (contient des variables de position) (contient des variables de position)
QL - QL - la position la position
QC -QC - le résultat le résultat
MéthodesMéthodes
Prédicat fixant la position: Prédicat fixant la position: QP’=Loc_Bind(QP,QL)QP’=Loc_Bind(QP,QL)La requête prend en compte une position donnéeLa requête prend en compte une position donnéeExemple: « Donner les hôtels à une distance maximale Exemple: « Donner les hôtels à une distance maximale de 20 Km avec des prix plus petits de 100 euros »de 20 Km avec des prix plus petits de 100 euros »
QPQP = (prix<100) et (Lx-20 < xposition < Lx+20) et = (prix<100) et (Lx-20 < xposition < Lx+20) et (Ly-20 < yposition < Ly+20) (Ly-20 < yposition < Ly+20)
Soit L= (10,30)Soit L= (10,30) Alors Alors QP’QP’ = (prix<100) et (-10 < xposition < 30) et = (prix<100) et (-10 < xposition < 30) et
(10 < yposition < 50) (10 < yposition < 50)
Méthodes (modèle du cache)Méthodes (modèle du cache)La méthodologie du Semantic CachingLa méthodologie du Semantic Caching Modèle de cache LDDModèle de cache LDD
Méthodes (les requêtes)Méthodes (les requêtes)
LDD Query ProcessingLDD Query ProcessingLe processus de Le processus de « query trimming »« query trimming »
« probe query »« probe query »
Reconstitution des attributs: Reconstitution des attributs: « amending « amending queries »queries »
« query remainder »« query remainder »
Envoyée au serveurEnvoyée au serveur
Méthodes (l’algo FAR)Méthodes (l’algo FAR) LDD Cache Management (Furthest Away LDD Cache Management (Furthest Away
Replacement) Replacement) Prendre en compte l’estimation du mouvement Prendre en compte l’estimation du mouvement
Diviser les segments:Diviser les segments: In-DirectionIn-Direction Out-DirectionOut-Direction
Choisir les segments à remplacer Choisir les segments à remplacer On regarde l’ensemble Out-Direction pour enlever le On regarde l’ensemble Out-Direction pour enlever le
segment le plus loin de la position courante segment le plus loin de la position courante Si il est vide, alors on enlève le plus loin segment de Si il est vide, alors on enlève le plus loin segment de
l’ensemble In-Directionl’ensemble In-Direction
Etude de performanceEtude de performance
Environnement de simulationEnvironnement de simulation 3 cas test du point de vue déplacement3 cas test du point de vue déplacement Modèle de simulation assez simple:Modèle de simulation assez simple:
BD avec une seule relationBD avec une seule relation
Un seule mobileUn seule mobile
4 directions de déplacement4 directions de déplacement
Vitesse constanteVitesse constante
On définit l’intervalle de temps entre 2 requêtes et On définit l’intervalle de temps entre 2 requêtes et le pourcentage de chevauchementle pourcentage de chevauchement
Etude de performanceEtude de performance
Comparaison cache par pages et cache Comparaison cache par pages et cache sémantiquesémantique
Etude de performanceEtude de performance
Comparaison cache par pages et cache Comparaison cache par pages et cache sémantique avec BD indexée sémantique avec BD indexée
Etude de performanceEtude de performance
Comparaison entre les méthodes Comparaison entre les méthodes classiques (LRU, MRU) et FARclassiques (LRU, MRU) et FAR Pour les cas test simples (allée et allée/retour)Pour les cas test simples (allée et allée/retour)
Pas de variations notables Pas de variations notables
Etude de performanceEtude de performance
Pour des tests avec une marche aléatoirePour des tests avec une marche aléatoire
Etude de performanceEtude de performance
Comparaison FAR / LRUComparaison FAR / LRU
Cas particulier: déplacement en rectangleCas particulier: déplacement en rectangle
Conclusions (1/2)Conclusions (1/2)
Points fortsPoints forts
Idée simple et intéressanteIdée simple et intéressante
Présentation assez explicite du contextePrésentation assez explicite du contexte
Des bonnes perspectives pour les travaux Des bonnes perspectives pour les travaux futuresfutures
Conclusions (2/2)Conclusions (2/2)
Points faiblesPoints faibles Modèle testé seulement en simulation pour Modèle testé seulement en simulation pour
des cas simplesdes cas simples
Pas d’analyse pour le passage à l’échellePas d’analyse pour le passage à l’échelle
Idée théorique sans préoccupation pour les Idée théorique sans préoccupation pour les aspects techniques aspects techniques