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.
<strong>le</strong> fichier <strong>de</strong> configuration dans <strong>le</strong>s versions antérieures à 0.7. Depuis Cassandra 0.7, on peut<br />
ajouter/modifier/supprimer une famil<strong>le</strong> <strong>de</strong> colonnes à la volée.<br />
Une famil<strong>le</strong> <strong>de</strong> colonnes a <strong>de</strong>ux attributs : son nom et son comparateur qui définit <strong>le</strong> critère<br />
permettant d’ordonner ses colonnes (par exemp<strong>le</strong> un critère basé <strong>sur</strong> l’encodage UTF8).<br />
Les différentes famil<strong>le</strong>s <strong>de</strong> colonnes sont stockées <strong>sur</strong> différents fichiers. Ce fait est important<br />
lors <strong>de</strong> la modélisation du schéma <strong>de</strong> <strong>données</strong>. Pour former une famil<strong>le</strong> <strong>de</strong> colonnes, on ne<br />
pensera plus qu’à la sémantique <strong><strong>de</strong>s</strong> <strong>données</strong> mais aussi à la manière et à la fréquence dont on<br />
y a accès. Si <strong>de</strong>ux colonnes ont tendance à être lues ou modifiées en même temps, <strong>le</strong>s mettre<br />
dans un même fichier permettra <strong>de</strong> limiter cette opération en un seul accès fichier.<br />
Colonnes<br />
Une (simp<strong>le</strong>) colonne est l’unité la plus basique du modè<strong>le</strong>. Une colonne est un trip<strong>le</strong>t :<br />
la clé (<strong>le</strong> nom), la va<strong>le</strong>ur et l’heure (un timestamp) (figure 3.11) <strong>de</strong> la <strong>de</strong>rnière modification.<br />
Ces colonnes ne sont pas définies au départ et peuvent être ajoutées/retirées à la volée, ce qui<br />
permet une certaine f<strong>le</strong>xibilité.<br />
Figure 3.11 – Cassandra - La structure d’une colonne [33]<br />
Une super colonne (figure 3.12) est une colonne spécia<strong>le</strong> ; sa va<strong>le</strong>ur est un ensemb<strong>le</strong> <strong>de</strong><br />
colonnes simp<strong>le</strong>s. L’idée est donc <strong>de</strong> donner un <strong>de</strong>gré <strong>de</strong> hiérarchie en plus au modè<strong>le</strong>. (Ce<br />
concept <strong>de</strong> super-colonne est un <strong><strong>de</strong>s</strong> principaux aspects qui différencie <strong>le</strong> modè<strong>le</strong> <strong>de</strong> <strong>données</strong><br />
<strong>de</strong> Cassandra à celui <strong>de</strong> Dynamo).<br />
Figure 3.12 – Cassandra - La structure d’une super colonne [33]<br />
Remarquons que lorsqu’une famil<strong>le</strong> <strong>de</strong> colonnes contient <strong><strong>de</strong>s</strong> super-colonnes, cette famil<strong>le</strong><br />
<strong>de</strong>vient une famil<strong>le</strong> <strong>de</strong> super-colonnes et ne pourra plus stocker que <strong><strong>de</strong>s</strong> super-colonnes.<br />
Résumé<br />
Ce modè<strong>le</strong> peut donc être vu comme une architecture à 5 niveaux (figure 3.13 ) :<br />
[keyspace][famil<strong>le</strong> <strong>de</strong> colonne][clé][super colonne][colonne].<br />
3.5.2 Le choix CAP et PACELC<br />
Cassandra a très clairement été développé tel un système AP. Mais notons que ce système<br />
donne l’option <strong>de</strong> pouvoir établir un niveau <strong>de</strong> consistance différent pour chaque requête :<br />
(notamment en utilisant la technique <strong>de</strong> quorum 2 ). Toutefois, on remarque que, s’il est possib<strong>le</strong><br />
2. Cette technique sera décrite à la section 3.5.5<br />
29