L'élasticité des bases de données sur le cloud computing - CoDE
L'élasticité des bases de données sur le cloud computing - CoDE
L'élasticité des bases de données sur le cloud computing - CoDE
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4.2 Problèmes liés à la me<strong>sur</strong>e <strong>de</strong> l’élasticité<br />
Avant <strong>de</strong> décrire <strong>de</strong> manière détaillée une nouvel<strong>le</strong> méthodologie, prenons <strong>le</strong> temps d’analyser<br />
<strong>le</strong>s problèmes intrinsèques à une tel<strong>le</strong> démarche : <strong>le</strong> premier est la difficulté <strong>de</strong> chiffrer,<br />
d’apposer une métrique <strong>sur</strong> l’ajout d’une instance. Jugera-t-on l’apport en CPU, en RAM ou<br />
en mémoire disque ? Effectivement ceci dépendra du type <strong>de</strong> SGBD : un SGBD stockant <strong>le</strong>s<br />
<strong>données</strong> en mémoire tirera nettement plus profit <strong>de</strong> l’ajout d’une instance avec une gran<strong>de</strong><br />
capacité en RAM qu’un système <strong>le</strong>s stockant en mémoire disque.<br />
Pour ne pas être confrontés à <strong>de</strong> tel<strong>le</strong>s considérations, nous proposons que toutes <strong>le</strong>s<br />
instances composant notre <strong>cloud</strong> soient similaires 2 . Chiffrer, fixer une métrique <strong>de</strong>vient donc<br />
assez simp<strong>le</strong> 3 :<br />
Définition 10.<br />
Soit ni, <strong>le</strong> nombre initial d’instances d’un service, nf <strong>le</strong> nombre d’instances du service<br />
après un passage à l’échel<strong>le</strong>, son apport terme <strong>de</strong> ressources se définit comme<br />
∆n = nf −ni<br />
ni<br />
Le second problème est <strong>de</strong> prendre en considération <strong>le</strong> rô<strong>le</strong> <strong>de</strong> l’instance. Une instance<br />
<strong>de</strong> calcul est dite sans état (state<strong>le</strong>ss en anglais) lorsqu’el<strong>le</strong> traite chaque requête indépendamment<br />
(sans relation avec la précé<strong>de</strong>nte). Les instances <strong>de</strong> BDs stocke <strong><strong>de</strong>s</strong> <strong>données</strong> dont<br />
la persistance doit être as<strong>sur</strong>ée. On voit ici assez vite arriver <strong>le</strong> problème <strong>de</strong> la <strong><strong>de</strong>s</strong>cente à<br />
l’échel<strong>le</strong> : lorsqu’on désire diminuer <strong>le</strong> nombre d’instances <strong>de</strong> stockage d’un service, il va falloir<br />
déplacer <strong>le</strong>s <strong>données</strong> qu’il stockait vers d’autres instances. Ceci va nécessiter un certain<br />
temps d’adaptation qui se reflétera <strong>sur</strong> une augmentation certaine <strong><strong>de</strong>s</strong> temps <strong>de</strong> latence du<br />
service <strong>de</strong> stockage. On <strong>le</strong> comprend donc, <strong>le</strong> rô<strong>le</strong> d’une instance détermine son influence <strong>sur</strong><br />
l’élasticité.<br />
Comme nous l’avons vu au chapitre 3, un nœud peut se voir attribuer un ensemb<strong>le</strong> <strong>de</strong><br />
fonctions bien différentes. Par exemp<strong>le</strong>, dans <strong>le</strong> cas <strong>de</strong> MongoDB , l’ajout un processus mongos<br />
aura un effet, théoriquement, très différent <strong>de</strong> l’ajout d’un shard. Lorsqu’on par<strong>le</strong> d’ajouter<br />
un nœud <strong>sur</strong> un cluster Hbase/HDFS, ajout-t-on ce nœud au cluster Hbase ou au cluster<br />
HDFS. Traiter ces rô<strong>le</strong>s comme une dimension <strong>de</strong> notre étu<strong>de</strong> semb<strong>le</strong> très comp<strong>le</strong>xe (voire<br />
impossib<strong>le</strong>). Toutefois, il ne serait pas judicieux <strong>de</strong> faire abstraction <strong>de</strong> ces rô<strong>le</strong>s. Il s’agit donc<br />
<strong>de</strong> <strong>le</strong>s considérer lors <strong>de</strong> l’analyse <strong><strong>de</strong>s</strong> résultats.<br />
4.3 Notre solution<br />
Si on peut comprendre faci<strong>le</strong>ment l’élasticité, définir <strong><strong>de</strong>s</strong> paramètres qui permettront <strong>de</strong><br />
la me<strong>sur</strong>er est une tâche moins aisée. Dans cette section, nous étudierons <strong>le</strong> comportement<br />
théorique d’un système face à l’ajout ou au retrait d’instances et proposerons un scénario <strong>de</strong><br />
test permettant <strong>de</strong> son élasticité.<br />
2. Cette abstraction peut faci<strong>le</strong>ment se justifier par l’aspect virtuel <strong><strong>de</strong>s</strong> instances composant <strong>le</strong> <strong>cloud</strong> : vu<br />
qu’el<strong>le</strong> font abstraction <strong>de</strong> la couche physique, il n’y a pas <strong>de</strong> raison <strong>de</strong> vouloir s’en tenir à <strong><strong>de</strong>s</strong> instances émulant<br />
<strong><strong>de</strong>s</strong> composantes physiques différentes<br />
3. Notons toutefois que, même si nous en faisons abstraction (pour <strong><strong>de</strong>s</strong> raisons <strong>de</strong> clarté), étudier ces aspects<br />
“physiques” <strong>de</strong> l’instance gar<strong>de</strong> tout son intérêt.<br />
41