NewSQL est une classe de systèmes de gestion de bases de données relationnelles qui visent à offrir la scalabilité des systèmes NoSQL pour les charges de travail de traitement transactionnel en ligne (OLTP) tout en maintenant les garanties ACID d'un système de base de données traditionnel.
De nombreux systèmes d'entreprise traitant des données sensibles (par exemple, les systèmes financiers et de traitement des commandes) sont trop volumineux pour les bases de données relationnelles classiques, mais leurs exigences transactionnelles et de cohérence ne sont pas compatibles avec les systèmes NoSQL. Auparavant, ces organisations ne pouvaient opter que pour l'acquisition d'ordinateurs plus puissants ou le développement d'un middleware personnalisé distribuant les requêtes via un SGBD classique . Ces deux approches engendrent des coûts d'infrastructure et/ou de développement élevés. Les systèmes NewSQL visent à concilier ces contraintes.
chez 451 Group , dans un article de recherche de 2011 portant sur l'émergence d'une nouvelle génération de systèmes de gestion de bases de données. L'un des premiers systèmes NewSQL était le système de base de données parallèle H-Store .Applications
Les applications typiques se caractérisent par des volumes importants de transactions OLTP . Transactions OLTP ;
- sont de courte durée (c'est-à-dire qu'il n'y a pas de blocage par l'utilisateur).
- manipulation de petites quantités de données par transaction
- utiliser des recherches indexées (pas de parcours de table)
- ont un petit nombre de formulaires (un petit nombre de requêtes avec différents arguments).
Cependant, certains prennent en charge les applications de traitement transactionnel/analytique hybride (HTAP). Ces systèmes améliorent les performances et l'évolutivité en omettant les opérations de récupération lourdes ou le contrôle de concurrence .
Liste des bases de données NewSQL
- Apache Trafodion
- Cluster
- CockroachDB
- Couchbase
- CrateDB
- Clé à molette Google
- Cluster MySQL
- NuoDB
- OceanBase
- Pivotal GemFire XD
- SequoiaDB
- SingleStore s'appelait auparavant MemSQL.
- Espaces actifs TIBCO
- TiDB
- TokuDB
- Base de données élastique TransLattice
- VoltDB
- YDB
- YugabyteDB
Caractéristiques
Les deux caractéristiques distinctives communes des solutions de bases de données NewSQL sont qu'elles prennent en charge la scalabilité en ligne des bases de données NoSQL et le modèle de données relationnel (y compris la cohérence ACID) en utilisant SQL comme interface principale.
Les systèmes NewSQL peuvent être regroupés de manière approximative en trois catégories :
Nouvelles architectures
Les systèmes NewSQL adoptent diverses architectures internes. Certains systèmes utilisent un cluster de nœuds sans partage , où chaque nœud gère un sous-ensemble des données. Ils intègrent des composants tels que le contrôle de concurrence distribué , le contrôle de flux et le traitement distribué des requêtes.
Moteurs SQL
La seconde catégorie regroupe les moteurs de stockage optimisés pour SQL . Ces systèmes offrent la même interface de programmation que SQL, mais avec une meilleure évolutivité que les moteurs intégrés.
Partitionnement transparent
Ces systèmes répartissent automatiquement les bases de données sur plusieurs nœuds à l'aide de l'algorithme de consensus Raft ou Paxos .