Quelques bases NoSQL émergentes : CockroachDB

Quelques bases NoSQL émergentes : CockroachDB

Dans mes articles précédents, j'ai abordé les nouvelles bases de données NoSQL qui sont peut-être les succès du futur. Mais il n'y a pas que le NoSQL qui préfigure la relève des bases de données. Le « mouvement » NewSQL décrit des bases de données relationnelles, reconstruites dès le départ pour conserver les forces des Systèmes de Gestion de Bases de Données Relationnelles (SGBDR), notamment le modèle relationnel, le langage SQL, les jointures et l'acidité de la transaction, en les adaptant à un système complètement distribué pour monter en charge horizontalement à l'infini.

Le bien connu théorème CAP, dont je parle dans cet article, indique qu'on ne peut pas obtenir trois garanties en même temps : cohérence, disponibilité et partitionnement. Ce théorème CAP est une des bases de la réflexion autour du NoSQL. Elle a conduit à dire que pour distribuer les données et continuer à assurer leur disponibilité, il faut diminuer l'exigence de cohérence de ces données. Et il est impératif aujourd’hui de pouvoir distribuer les données pour gérer des volumes de données de plus en plus importants.

Pour cela, il faut simplifier le modèle de données. Un modèle relationnel, avec d'innombrables relations entre les tables, est difficile à distribuer. Le plus simple, c'est d'avoir une table de type paire clé-valeur avec une seule clé, la clé primaire, sur laquelle on peut découper et distribuer.

Pour bien comprendre ce qu’est une paire clé-valeur, voici un extrait de la formation Les fondements de la programmation : Les structures de données.

Mais ce n'est pas parce qu'il est difficile de distribuer un modèle relationnel, que c'est impossible. Par exemple, Google l'a fait. Depuis 2012, Google utilise une base de données relationnelle et cohérente pour stocker toute sa publicité en ligne, donc l’essentiel de son revenu. La base s’appelle F1, et elle est décrite dans cette publication.

Afin de réussir le découpage de données relationnelles, Google a opté pour un stockage hiérarchique et emboîté. Alors qu’on se représente un modèle relationnel sans réelle hiérarchie, comme des tables liées les unes aux autres, comme ceci.

Le modèle de stockage choisi par Google, et qui leur permet de répartir les données des tables avec les tables filles, ressemble à ceci.

Donc, les relations entre les tables sont stockées de façon imbriquée, pour stocker les clés étrangères sur les mêmes serveurs que les valeurs de clés primaires.

Le fondement de ce type de stockage est toujours une approche clé-valeur. Il y a toujours une clé primaire.

CockroachDB

Il y a quelques moteurs NewSQL naissants qui s’inspirent de ce modèle. Celui dont je veux vous parler s’appelle CockroachDB. Il évolue vite et malgré son nom peu commercial, il peut se révéler un candidat à une popularité croissante, surtout parce qu’il offre des fonctions riches : langage SQL, indexation, transactions avec isolation optimiste et pessimiste, jointures, tout cela avec un modèle de distribution horizontale.

Au début, CockroachDB était un moteur de bases de données clé-valeur. Les concepteurs ont ensuite ajouté, par-dessus le moteur de stockage, une couche de requêtage en SQL, avec la possibilité d'écrire des jointures. L'accès au serveur se fait à l'aide du protocole de PostgreSQL, les bibliothèques clientes crées pour PostgreSQL sont donc naturellement adaptées à CockroachDB. La liste des éléments de syntaxe SQL supportés est déjà longue. Par exemple, les fonctions de fenêtrage, et la création de vues. La sécurité est aussi présente, avec la possibilité de gérer les privilèges sur les objets.

Les données sont organisées en utilisant une imbrication, comme le modèle de Google F1. CockroachDB supporte le principe des transactions distribuées, et les transactions sont complètement ACID. Le protocole implémenté s'appelle Raft, et il s'agit d'un protocole plus simple que Paxos, qui est utilisé par HBase par exemple.

Pour rappel, voici dans cette vidéo, en quoi consiste une transaction dans le monde SQL.

CockroachDB est un moteur de bases de données NewSQL très intéressant et qui évolue dans le bon sens. Ne le perdez pas de vue, il pourrait se révéler un très bon choix pour vos besoins.

Les vidéos sont des extraits de mes formations LinkedIn Learning.

#nosql #sgbd #newsql

Alexandre Bigey

Pilote d’essai dans l’industrie du suppositoire

7 ans

.

  • Aucune description alternative pour cette image
🌥️Eric Duquesnoy

Cloud Architect, FinOps Evangelist, Certified (Azure, AWS, Kubernetes) - Silicon Chalet Meetup Founder

7 ans

intéressant Rudy ! Peux tu nous dire quel est le best use case pour CockroachDB ? Big Data ?

Identifiez-vous pour afficher ou ajouter un commentaire

Plus d’articles de Rudi Bruchez

  • Programme DataFrogs du 18 mars 2023

    Programme DataFrogs du 18 mars 2023

    Voici le programme du prochain DataFrogs qui aura lieu en ligne (sur Teams) le samedi 18 mars 2023. La conférence est…

    8 commentaires
  • Programme de DataFrogs 01

    Programme de DataFrogs 01

    Voici le programme de la conférence gratuite DataFrogs (inscrivez-vous !), qui réunit la communauté française, et…

    2 commentaires
  • Les théories du complot, évidemment...

    Les théories du complot, évidemment...

    Un sondage, il y a quelques jours, révèle que pour près d’un Français sur quatre, le COVID-19 a été créé en…

    24 commentaires
  • Arrêtez les réunions !

    Arrêtez les réunions !

    Quelques entreprises ont décidé d’arrêter les réunions. Vraiment.

    81 commentaires
  • Pourquoi le RGPD est une opportunité

    Pourquoi le RGPD est une opportunité

    Vous connaissez le Règlement Européen pour la Protection des Données, ou RGPD, vous savez qu’il entre en application le…

    3 commentaires
  • Qu’est-ce qu’une base de données graphe ?

    Qu’est-ce qu’une base de données graphe ?

    Depuis une dizaine d’années, le monde des systèmes de gestion de bases de données est en mutation. D’un modèle…

    1 commentaire
  • Peut-on se mettre à la place des autres ?

    Peut-on se mettre à la place des autres ?

    Il y a un paradoxe dans la vie. s’il n’y en avait qu’un seul, me direz-vous, tout irait bien.

    65 commentaires
  • NoSQL : l’évolution du théorème CAP

    NoSQL : l’évolution du théorème CAP

    Dans deux billets précédents, j’ai évoqué de nouveaux moteurs de bases de données NoSQL, qui pourraient être les…

    3 commentaires
  • Quelques bases NoSQL émergentes : ScyllaDB

    Quelques bases NoSQL émergentes : ScyllaDB

    Dans un billet précédent, j’ai abordé Couchbase Server, un compétiteur de MongoDB dans la classe des moteurs NoSQL…

    4 commentaires
  • Quelques bases NoSQL émergentes: Couchbase Server

    Quelques bases NoSQL émergentes: Couchbase Server

    Les moteurs de bases de données NoSQL les plus anciens ont bientôt dix ans. La première version de MongoDB est parue en…

Autres pages consultées

Explorer les sujets