CockroachDB : la base de données SQL transactionnelle, distribuée, prête à relever les défis des applications modernes (enfin !)

30 Juin 2025 | News | 0 commentaires

Nous sommes fiers chez Azalyst d’annoncer notre partenariat fort sur la nouvelle génération de système de gestion de bases de données relationnelle !

Retour sur un peu de technique nécessaire : précisons le vocabulaire employé.

Transactionnel OLTP (online transaction processing)

Si vous n’êtes pas familier avec ce terme, l’OLTP décrit les bases de données traitant des charges de travail en temps réel avec un client qui ne modifie que quelques enregistrements à la fois (même s’il peut y avoir de nombreux clients en parallèle). C’est l’opposé des charges de travail analytiques qui peuvent concerner chaque ligne d’une table et qui prennent des heures à exécuter.

C’est le cas des systèmes de prises de commande, d’authentification, ou plus généralement d’actions décrivant des changements d’état (stock, comptes bancaires, etc…).

 

SQL distribué

Un SQL distribué va au-delà d’une base de données SQL traditionnelle comme MySQL, et au-delà d’une base de données NoSQL comme Cassandra. C’est une base qui a la richesse fonctionnelle d’une base de données relationnelle ET l’évolutivité et la résilience des bases NoSQL.

Penchons-nous un peu plus sur cette question : concrètement, qu’est-ce qui fait l’essence d’un SQL distribué ?

Tout d’abord, la notion de distribution : la base doit s’adapter et le faire de manière transparente. C’est là que les anciennes bases de données SQL ne sont plus à la hauteur. Cela ne veut pas dire qu’elles ne peuvent pas s’adapter, mais dans une certaine limite.

S’il est, par exemple, possible de diviser une base de données Postgres, et nombreux sont ceux qui le font, cela représente toutefois une énorme charge de travail supplémentaire, sans compter tous les compromis à faire … A manier avec prudence, donc !

Ensuite, la cohérence : les lecteurs voient toujours les écritures et dans le même ordre qu’elles ont été créées. C’est un domaine dans lequel NoSQL rencontre souvent des problèmes.

Enfin, la résilience : un SQL distribué est résilient, alors que les bases de données SQL héritées sont ne sont pas à la hauteur, même si elles ont ajouté quelques fonctions de résilience au fil des ans. Mais ce n’est pas sans heurts et cela nécessite souvent un niveau supplémentaire d’architecture et/ou de gestion des données humaine.

Transactions ACID

Fondement d’un SQL distribué : Toute base de données relationnelle  digne de ce nom doit parler SQL car c’est le langage des données. Mais un langage SQL sans transactions n’est rien, et je parle bien ici de transactions ACID.

Ces garanties ACID sont importantes et elles sont assez difficiles à mettre en œuvre, même sur une seule machine.

Quand on parle de garanties ACID, on parle de quatre promesses :

  1. Les transactions doivent être atomiques: toutes les parties d’une transaction ont lieu ou qu’aucune n’a lieu.
  2.  Les transactions doivent être cohérentes: elles doivent respecter toutes les règles imposées à la base de données, comme les contraintes de clés étrangères, par exemple. Passer d’un état cohérent à un autre doit se faire sans qu’aucun état incohérent ne soit visible par les lecteurs à aucun moment.
  3. Les transactions doivent être isolées: même si la base de données peut être en mesure de paralléliser certaines opérations, elle ne peut pas permettre que les transactions donnent l’impression qu’elles sont entrelacées.
  4. Les transactions doivent être durables: lorsqu’une transaction est validée, elle le reste, même en cas de défaillance d’une partie du système.

Pris ensemble, ces éléments forment un ensemble d’exigences de base pour un SQL distribué.

C’est déjà pas mal pour aujourd’hui.

Nous expliquerons par la suite ce que CockroachDB fournit aux développeurs d’applications modernes.

Vous voulez aller plus loin ? N’hésitez pas à nous contacter !

 

Autres articles qui pourraient vous intéresser

La gestion de données exponentielles : le casse-tête des DSI

On ne vous apprend rien : la quantité de données générées par les applications ne cesse de croître et même s’accélère fortement ces dernières années. Leur format et les applications qui les contiennent prennent également des formes diverses. Comment simplifier la...

lire plus

Sécurité des données dans le cloud : enjeux et solutions

Dans un monde de plus en plus numérisé, la sécurité des données dans le cloud est devenue une priorité absolue pour les entreprises. Avec l'augmentation exponentielle des cyberattaques, garantir la confidentialité, l'intégrité et la disponibilité des données est un...

lire plus

Si on en parlait ?

RGPD

11 + 8 =

Azalyst

121 rue d'Aguesseau
92100 Boulogne Billancourt
Tél. : 01 55 60 18 27
email : contact[a]azalyst.fr