Dans mon article précédent, nous avons vu des différences fondamentales entre les bases de données relationnelles et non relationnelles. Dans cet article, parlons de l'évolutivité de ces deux.
Évolutivité
C'est une capacité d'un système qui peut facilement accueillir les données entrantes rapides sans trop de problèmes de performances. C'est le principal facteur pour tout système de fournir une bonne évolutivité. Il existe deux types de méthodes de mise à l'échelle appelées mise à l'échelle verticale et horizontale.
Échelle verticale
Tous les outils de base de données relationnelle prennent en charge la mise à l'échelle verticale. C'est la méthode d'augmentation de la puissance du système en ajoutant des espaces CPU, mémoire et disque supplémentaires. Ainsi, pour permettre des données entrantes rapides, le serveur de production unique est optimisé pour évoluer. Dans cette technique de mise à l'échelle, il y a toujours un seul serveur de production qui peut être connecté par toutes les applications et tous les utilisateurs. Un environnement de cluster peut être créé avec certains nœuds et répliquer les données entre les nœuds.
En raison des propriétés ACID, tous les nœuds doivent avoir le même ensemble de données et la synchronisation des données devient compliquée s'il y a plusieurs nœuds dans le cluster. Ceci est très optimisé pour la mise à l'échelle de lecture. La mise à l'échelle verticale est également appelée mise à l'échelle
L'avantage de cette méthodologie de mise à l'échelle est l'intégration étroite des données et leur cohérence entre les nœuds d'un cluster. Tous les nœuds auront le même ensemble de données et en cas de problème avec le serveur de production, un autre nœud sera automatiquement connecté par les applications. Ce cluster est donc appelé cluster de basculement.
Mise à l'échelle horizontale
Tous les outils de base de données non relationnelle prennent en charge la mise à l'échelle horizontale. C'est la méthode d'ajouter plus d'ordinateurs au réseau pour permettre des données entrantes rapides. Il est facile d'ajouter plus de nœuds dans le cluster pour permettre la croissance des données. Les données sont divisées automatiquement et traitées entre les nœuds d'un cluster. Il s'agit d'un environnement de données distribué. Hadoop Distributed File System (HDFS) en est un exemple classique. La mise à l'échelle horizontale est également appelée Scale-out.
L'avantage de cette technique de mise à l'échelle est que, puisque les données sont divisées et répliquées sur les nœuds si l'un des nœuds se déconnecte, l'application peut toujours disposer des données d'autres nœuds, ce qui garantit la disponibilité des données à tout moment. Cette méthode est très utile pour les cas où aucun JOIN n'est requis parmi les données des nœuds. Cela est également utile pour séparer les données et les avoir dans différents emplacements géographiques.
Bien que ces deux techniques de mise à l'échelle présentent des avantages et des inconvénients, un bon environnement peut combiner les deux pour obtenir une mise à l'échelle et une mise à l'échelle exceptionnelles. Nous pouvons avoir une base de données de lecture et d'écriture évolutive sur un seul serveur qui nécessite des propriétés ACID et avoir des données historiques distribuées évolutives sur plusieurs nœuds à des fins d'exploration de données.