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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

– ALL : interroge tous <strong>le</strong>s nœuds. Si un seul ne répond pas la requête est considérée comme<br />

non validée. Dans <strong>le</strong> cas contraire, on reconstruit la donnée avec toutes <strong>le</strong>s réponses.<br />

On <strong>le</strong> comprend, tous <strong>le</strong>s mécanismes <strong>de</strong> réparation ont lieu à la <strong>le</strong>cture, ce qui peut<br />

entrainer <strong><strong>de</strong>s</strong> pertes <strong>de</strong> performances à la <strong>le</strong>cture. Cassandra a donc été modélisée pour <strong><strong>de</strong>s</strong><br />

écritures performantes (aux dépens <strong>de</strong> la performance en <strong>le</strong>cture).<br />

3.5.6 Modè<strong>le</strong> <strong>de</strong> requêtes<br />

Le modè<strong>le</strong> <strong>de</strong> requêtes <strong>de</strong> Cassandra peut être considéré comme assez riche (même si il est<br />

moins riche que celui <strong>de</strong> Mongo). A titre d’exemp<strong>le</strong>, nous proposons une liste non-exhaustive<br />

<strong><strong>de</strong>s</strong> différentes requêtes possib<strong>le</strong>s[4] 5 :<br />

– GET retourne une (super) colonne d’une entrée spécifiée par sa clé.<br />

– GET SLICE retourne un ensemb<strong>le</strong> <strong>de</strong> (super) colonnes (spécifiées par un Sli<strong>de</strong>Predicate<br />

6 ) d’une entrée spécifiée par sa clé.<br />

– MULTIGET SLICE retourne un ensemb<strong>le</strong> <strong>de</strong> (super) colonnes (spécifiées par un Slice-<br />

Predicate) <strong>de</strong> plusieurs entrées (spécifiées par <strong>le</strong>urs clés).<br />

– GET COUNT retourne <strong>le</strong> nombre <strong>de</strong> colonnes présentes dans une entrée et respectant<br />

un SlicePredicate.<br />

Si Cassandra est couplée à un cluster Hadoop (voir section 3.6.1), <strong><strong>de</strong>s</strong> fonctions MR<br />

peuvent être écrites pour faciliter l’exécution <strong>de</strong> tâches comp<strong>le</strong>xes.<br />

3.6 HBase<br />

HBase est un projet open-source écrit en JAVA Apache dont <strong>le</strong> but est <strong>de</strong> fournir un produit<br />

similaire au produit propriétaire Big Tab<strong>le</strong> <strong>de</strong> Goog<strong>le</strong>. Tout comme BigTab<strong>le</strong> se déployait<br />

au <strong><strong>de</strong>s</strong>sus du système <strong>de</strong> fichiers distribué Goog<strong>le</strong> Fi<strong>le</strong> System, Hbase se déploie <strong>sur</strong> un système<br />

<strong>de</strong> fichiers distribué open-source : The Hadoop Distributed Fi<strong>le</strong>system (HDFS) (un projet <strong>de</strong><br />

la fondation Apache) qui se charge <strong><strong>de</strong>s</strong> opérations <strong>de</strong> réplication 7 .<br />

3.6.1 The Hadoop Distributed Fi<strong>le</strong>system<br />

HDFS est conçu autour <strong>de</strong> l’idée que <strong>le</strong> mo<strong>de</strong> <strong>de</strong> traitement <strong>de</strong> <strong>données</strong> <strong>le</strong> plus efficace<br />

consiste en une et une seu<strong>le</strong> écriture et plusieurs <strong>le</strong>ctures pour chaque donnée. [43]. Un ensemb<strong>le</strong><br />

<strong>de</strong> <strong>données</strong> est donc copié ou généré une fois et analysé à <strong>de</strong> nombreuses reprises. Il est<br />

conçu pour pouvoir se déployer <strong>sur</strong> <strong><strong>de</strong>s</strong> nœuds différents <strong>le</strong>s uns <strong><strong>de</strong>s</strong> autres (pouvant appartenir<br />

à <strong><strong>de</strong>s</strong> clusters différents). Dans ce contexte, <strong>le</strong>s défaillances ne sont pas exceptionnel<strong>le</strong>s. Il<br />

est conçu <strong>de</strong> manière à gérer ces défaillances sans entrainer <strong>de</strong> trop longs temps d’interruption<br />

chez l’utilisateur [43].<br />

L’architectre HDFS repose <strong>sur</strong> <strong>de</strong>ux composants : <strong>le</strong> nœud <strong>de</strong> noms (nameno<strong>de</strong> en anglais)<br />

et <strong>le</strong>s nœuds <strong>de</strong> <strong>données</strong> (datano<strong><strong>de</strong>s</strong> en anglais) (figure 3.14) et suit <strong>le</strong> pattern maître-esclave :<br />

.<br />

5. Rappelons que la consistance <strong>de</strong> la plupart <strong><strong>de</strong>s</strong> requêtes peut être définie individuel<strong>le</strong>ment pour la plupart<br />

<strong><strong>de</strong>s</strong> requêtes<br />

6. Un SlicePredicate est l’équiva<strong>le</strong>nt d’un prédicat en logique mathématique.<br />

7. HBase peut se déployer <strong>sur</strong> d’autres systèmes <strong>de</strong> fichiers distribués mais il est d’usage courant <strong>de</strong> la<br />

coup<strong>le</strong>r à HDFS<br />

33

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

Saved successfully!

Ooh no, something went wrong!