Il y a quelques jours, la fondation Apache Software a annoncé la sortie de la nouvelle version d'Apache Cassandra 4.0, un système de gestion de bases de données distribuées appartenant à la classe des systèmes NoSQL et conçu pour créer un stockage hautement évolutif et fiable de grandes quantités de données stockées sous forme de tableau associatif.
Cette nouvelle version d'Apache Cassandra 4.0 est considérée comme une version stable donc elle peut être utilisée pour des déploiements de production et a déjà été testée dans les infrastructures Amazon, Apple, DataStax, Instaclustr, iland et Netflix avec des clusters de plus de 1000 nœuds.
Principales nouveautés d'Apache Cassandra 4.0
Cette nouvelle version d' Apache Cassandra 4.0 comprend près de 1 000 corrections de bogues, améliorations et nouvelles fonctionnalités, parmi lesquelles les suivantes se distinguent :
- Vitesse et évolutivité accrues : transmet les données jusqu'à 5 fois plus rapidement lors des opérations de mise à l'échelle et des performances jusqu'à 25 % plus rapides en lecture et en écriture, offrant une architecture plus élastique, en particulier dans les déploiements cloud et Kubernetes.
- Cohérence améliorée : maintient les répliques de données synchronisées pour optimiser la réparation incrémentielle pour un fonctionnement plus rapide et plus efficace et une cohérence entre les répliques de données.
- Amélioration de la sécurité et de l'observabilité : la piste d'audit suit l'accès et l'activité des utilisateurs avec un impact minimal sur les performances de la charge de travail. La nouvelle capture et lecture permet d'analyser les charges de travail de production pour garantir la sécurité et la conformité réglementaire avec SOX, PCI, GDPR ou d'autres exigences.
- Nouveaux paramètres de configuration : les métriques système et les paramètres de configuration exposés offrent aux opérateurs la flexibilité de s'assurer qu'ils ont un accès facile aux données qui optimisent les déploiements.
- Latence minimisée : Les temps de pause du ramasse-miettes sont réduits à quelques millisecondes sans dégradation de la latence à mesure que la taille du tas augmente.
- Meilleure compression : L'efficacité de compression améliorée soulage le stress inutile sur l'espace disque et améliore les performances de lecture.
En outre, il convient également de souligner que la prise en charge de la journalisation d'audit a été ajoutée pour suivre les opérations d'authentification des utilisateurs et toutes les requêtes CQL exécutées, ainsi que la possibilité de conserver un journal binaire complet des requêtes, permettant ainsi d'enregistrer tout le trafic de requêtes et de réponses.
Il convient également de mentionner l'option expérimentale permettant de comparer tous les arbres de Merkle. Par exemple, si vous activez cette option sur un cluster à 3 nœuds où deux répliques sont identiques et la troisième obsolète, la réplique obsolète sera mise à jour par simple copie de la réplique actuelle.
Aussi, ajout de la prise en charge des tables virtuelles qui ne reflètent pas les données stockées dans SSTables, mais des informations affichées via l'API (métriques de performances, informations de configuration, contenu du cache, informations sur les clients connectés, etc.).
L'efficacité du stockage compressé a été améliorée pour réduire la consommation d'espace disque et améliorer les performances de lecture.
De plus, il convient de noter que la prise en charge expérimentale de la réplication transitoire et des quorums à bas coût a été ajoutée. Les répliques temporaires ne stockent pas toutes les données et utilisent une récupération incrémentale pour maintenir la cohérence avec les répliques complètes. Les quorums à bas coût sont des optimisations d'écriture qui n'écrivent pas sur les répliques temporaires tant qu'un nombre suffisant de répliques complètes n'est pas disponible.
Quant aux données relatives à l'espace de la clé système (system.*), elles sont désormais dans le premier répertoire par défaut au lieu d'être réparties entre tous les répertoires de données, permettant au nœud de rester opérationnel en cas de panne de l'un des disques supplémentaires.
Parmi les autres changements notables , citons :
- Un support expérimental pour Java 11 a été ajouté.
- Ajout de la prise en charge des opérations arithmétiques dans les requêtes CQL.
- La commande "nodetool cfstats" a ajouté la prise en charge du tri selon certaines métriques et de la limitation du nombre de lignes affichées.
- Les paramètres sont fournis pour restreindre les connexions des utilisateurs à des centres de données spécifiques uniquement.
- Ajout de la possibilité de limiter l'intensité (limite de fréquence) des opérations pour créer et supprimer des instantanés.
- La prise en charge de Python 3 est implémentée dans cqlsh et cqlshlib (la prise en charge de Python 2.7 est toujours préservée).
Enfin, si vous souhaitez en savoir plus sur cette nouvelle version, vous trouverez les détails en suivant ce lien.