Bases de données à haute disponibilité

Bases de données à haute disponibilité

Description des bases de données à haute disponibilité

 

QU'EST-CE QU'UNE BASE DE DONNÉES À HAUTE DISPONIBILITÉ ?

Les bases de données à haute disponibilité sont conçues pour fonctionner normalement même en cas d'anomalie au niveau du matériel ou du réseau. Il s'agit d'une alternative aux bases de données relationnelles traditionnelles, qui sont généralement destinées à être déployées sur un seul serveur tout en s'articulant autour d'une architecture maître/réplique. Avec cette dernière, seul le maître est disponible pour les mises à jour, à moins qu'il ne présente un problème. Dans ce cas, une réplique vient alors le supplanter. En théorie, un tel modèle est fiable en termes de disponibilité. Cependant, en pratique, des points de défaillance sont toujours envisageables. Une architecture complexe peut entraîner des conflits lors du remplacement du maître et, in fine, des temps d'arrêt.

Les bases de données à haute disponibilité ont été développées afin d'éviter tout point de défaillance et de permettre une utilisation sans interruption, même en cas de panne. Avec elles, la disponibilité est plus aisément garantie dans un environnement à nœuds et clusters multiples qu'elle ne le serait avec une base de données relationnelle. Ceci est souvent dû à une architecture sans maître qui induit le regroupement de serveurs multiples. Comme il n'existe aucun maître, tout serveur au sein d'un cluster est en mesure de traiter des requêtes en lecture ou écriture. Les données sont ensuite répliquées au niveau de tous les serveurs du cluster, ce qui est synonyme de redondance et de temps d'arrêt bien moins probables.

THÉORÈME CAP

Toute discussion portant sur les bases de données à haute disponibilité et NoSQL se doit d'aborder au moins brièvement le théorème CAP du chercheur Eric Brewer. D'après ce théorème, il est impossible pour un système distribué de garantir les éléments suivants de manière simultanée :

  • La cohérence (un même ensemble de données n'est pas associé à des valeurs multiples) ;
  • La disponibilité (le système fonctionne correctement et de manière continue) ;
  • La tolérance aux partitions (les anomalies au niveau des nœuds et/ou du réseau sont traitées correctement).

Selon le théorème, un système peut assurer disponibilité et cohérence, mais cela devient impossible en cas de partition. Si vous optez pour une base de données NoSQL, vous devrez, à un certain moment, favoriser une seule option : soit la disponibilité et la cohérence, soit la cohérence et la tolérance aux partitions. Pour obtenir des informations plus détaillées sur les diverses bases de données NoSQL et leur sélection en fonction de vos besoins, consultez l'article « NoSQL Databases: a Survey and Decision Guidance » de Felix Gesser. Riak KV est une base de données hautement disponible et compatible avec les partitions, contrairement à MongoDB qui n'assure pas ce degré de disponibilité. 

ÉLÉMENTS À PRENDRE EN COMPTE AVEC LES BASES DE DONNÉES À HAUTE DISPONIBILITÉ

Les bases de données NoSQL sont de plus en plus adoptées pour profiter d'une haute disponibilité. Cependant, comme indiqué plus haut, toutes ne permettent pas cela. Lors de la sélection d'une telle base de données, divers éléments doivent être pris en compte, parmi lesquels :

LA RÉSILIENCE : il existe divers mécanismes permettant d'assurer la redondance dans un cluster NoSQL hautement disponible. Une base de données NoSQL distribuée et sans maître constitue la bonne alternative car les données sont automatiquement réparties au niveau d'un cluster, de manière uniforme. Enfin, elle se révèle très efficace lorsqu'il est question d'éviter tout point de défaillance et tout arrêt.

L'ÉQUILIBRAGE ENTRE DISPONIBILITÉ ET COHÉRENCE : une base de données hautement disponible favorise la disponibilité en premier lieu, et pas nécessairement la cohérence stricte des informations. En effet, le fait que les requêtes en lecture et écrite puissent être traitées même lorsque plusieurs serveurs sont hors ligne, ou inexploitables, implique que les données sont susceptibles de ne pas être cohérentes pendant une certaine période (généralement, quelques millisecondes). Lorsqu'une cohérence stricte est nécessaire, notamment avec certaines opérations financières, une telle situation peut ne pas être envisageable. Cependant, comme la disponibilité est souvent cruciale pour éviter les pertes de revenus, maintenir la fidélité des clients ou proposer des fonctionnalités de qualité à ses utilisateurs, il est important de trouver le bon équilibre entre disponibilité et cohérence.

LA DISPONIBILITÉ PERMANENTE DES DONNÉES DE LECTURE ET D'ÉCRITURE : en cas d'anomalie au niveau du réseau ou d'un serveur, certaines bases de données (y compris des bases de données NoSQL hautement disponibles) traiteront les requêtes en écriture mais ne permettront pas l'exploitation des données tant que le fonctionnement normal du cluster n'aura pas été rétabli. Ceci peut entraîner le nouvel envoi de requêtes dupliquées (par exemple, un utilisateur rajoute un article dans son panier car celui-ci n'apparaît pas). De ce fait, il est important de sélectionner une base de données qui est conçue pour garantir la disponibilité absolument continue des données d'écriture et de lecture.

tier-1-line class=

C'EST L'ARCHITECTURE QUI PERMET LA HAUTE DISPONIBILITÉ.

La manière dont l'architecture d'une base de données gère les anomalies constitue un point crucial pour réduire les temps d'arrêt.

Lire l'article sur le blog

AVEC RIAK KV, VOS DONNÉES SONT TOUJOURS DISPONIBLES.

Riak KV est une base de données distribuée et sans maître, spécifiquement conçue pour vous assurer une résilience maximale.

Obtenez des informations supplémentaires sur Riak KV

 
Pour en savoir plus sur le clustering haute disponibilité, consultez cette page Wikipédia.