13.07.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!