La base de données Apache Cassandra 4.0 est maintenant disponible

La fondation Apache Software a prĂ©sentĂ© la version 4.0 de la base de donnĂ©es distribuĂ©e Apache Cassandra, qui appartient Ă  la catĂ©gorie des systĂšmes noSQL et est conçue pour crĂ©er des entrepĂŽts hautement Ă©volutifs et fiables pour de vastes ensembles de donnĂ©es stockĂ©es sous forme de tableaux associatifs (hachages). La version 4.0 de Cassandra est considĂ©rĂ©e comme prĂȘte pour les dĂ©ploiements en production et a dĂ©jĂ  Ă©tĂ© testĂ©e dans les infrastructures d'entreprises telles qu'Amazon, Apple, DataStax, Instaclustr, iland et Netflix, disposant de clusters comptant plus de 1000 nƓuds. Le code du projet est Ă©crit en Java et est distribuĂ© sous la licence Apache 2.0.

À l'origine, la base de donnĂ©es Cassandra a Ă©tĂ© dĂ©veloppĂ©e par Facebook et a Ă©tĂ© confiĂ©e Ă  la fondation Apache en 2009. Des solutions industrielles basĂ©es sur Cassandra sont dĂ©ployĂ©es pour faire fonctionner les services d'entreprises telles qu'Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit et Twitter. Par exemple, l'infrastructure de stockage dĂ©ployĂ©e par Apple basĂ©e sur Apache Cassandra compte plus de mille clusters, incluant 160 000 nƓuds et stockant plus de 100 pĂ©taoctets de donnĂ©es. Huawei utilise plus de 300 clusters Apache Cassandra, incluant 30 000 nƓuds, et Netflix dispose de plus de 100 clusters couvrant 10 000 nƓuds et traitant plus d'un trillion de requĂȘtes par jour.

La base de donnĂ©es Cassandra intĂšgre un systĂšme de hachage complĂštement distribuĂ©, Dynamo, garantissant une Ă©volutivitĂ© presque linĂ©aire Ă  mesure que le volume de donnĂ©es augmente. Cassandra utilise un modĂšle de stockage basĂ© sur des familles de colonnes (ColumnFamily), qui diffĂšre des systĂšmes comme memcachedb, qui ne stockent des donnĂ©es que sous forme de paires clĂ©/valeur, en permettant d'organiser le stockage de hachages avec plusieurs niveaux d'imbrication. Pour simplifier l'interaction avec la base de donnĂ©es, un langage de requĂȘte structurĂ©, CQL (Cassandra Query Language), similaire Ă  SQL mais limitĂ© en fonctionnalitĂ©s, est pris en charge. On peut noter la prise en charge des espaces de noms et des familles de colonnes, ainsi que la crĂ©ation d'index via l'expression « CREATE INDEX ».

La base de donnĂ©es permet de crĂ©er des stockages rĂ©silients aux pannes : les donnĂ©es insĂ©rĂ©es dans la base de donnĂ©es sont automatiquement rĂ©pliquĂ©es sur plusieurs nƓuds d'un rĂ©seau distribuĂ©, qui peut couvrir diffĂ©rentes centres de donnĂ©es. En cas de dĂ©faillance d'un nƓud, ses fonctions sont immĂ©diatement prises en charge par d'autres nƓuds. L'ajout de nouveaux nƓuds au cluster et la mise Ă  jour de la version de Cassandra se font Ă  la volĂ©e, sans intervention manuelle supplĂ©mentaire ni reconfiguration des autres nƓuds. Les pilotes prenant en charge CQL sont disponibles pour les langages Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ et JavaScript (Node.js).

Les principales nouveautés :

  • AmĂ©lioration de la performance et de l'Ă©volutivitĂ©. L'efficacitĂ© de l'Ă©change de donnĂ©es au format SSTable (Sorted Strings Table) entre les nƓuds a Ă©tĂ© augmentĂ©e. Le protocole de communication entre les nƓuds (Internode Messaging Protocol) a Ă©tĂ© optimisĂ©. La vitesse de transmission des flux de donnĂ©es entre les nƓuds a Ă©tĂ© multipliĂ©e par 5 (principalement grĂące Ă  l'application de la technique Zero Copy et Ă  la transmission complĂšte des SSTables), et la bande passante pour les opĂ©rations de lecture et d'Ă©criture a augmentĂ© de 25 %. Le processus de rĂ©cupĂ©ration incrĂ©mentale a Ă©tĂ© optimisĂ©. Les retardements dus Ă  la suspension par le collecteur de dĂ©chets ont Ă©tĂ© rĂ©duits Ă  quelques millisecondes.
  • Ajout de la prise en charge des journaux d'audit, permettant de suivre les opĂ©rations d'authentification des utilisateurs et toutes les requĂȘtes CQL effectuĂ©es.
  • Ajout de la possibilitĂ© de maintenir un journal binaire complet des requĂȘtes, permettant de conserver tout le trafic des requĂȘtes et des rĂ©ponses. Pour la gestion, des commandes comme « nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog » sont proposĂ©es, et un outil de saisie de donnĂ©es (fqltool) est fourni pour analyser le journal. Des commandes sont fournies pour convertir le journal en un format lisible (Dump), comparer des instantanĂ©s d'activitĂ© (Compare) et rejouer (Replay) pour l'analyse avec reproduction des conditions caractĂ©ristiques de la charge rĂ©elle.
  • Ajout de la prise en charge des tables virtuelles, qui reflĂštent non pas les donnĂ©es stockĂ©es dans les SSTables, mais les informations fournies via l'API (mĂ©triques de performance, informations de configuration, contenu du cache, dĂ©tails sur les clients connectĂ©s, etc.).
  • AmĂ©lioration de l'efficacitĂ© de stockage des donnĂ©es sous une forme compressĂ©e, ce qui permet de rĂ©duire la consommation d'espace disque et d'amĂ©liorer la performance des opĂ©rations de lecture.
  • Les donnĂ©es relatives Ă  l'espace de clĂ©s systĂšme (system.*) sont dĂ©sormais par dĂ©faut placĂ©es dans le premier rĂ©pertoire au lieu d'ĂȘtre rĂ©parties dans tous les rĂ©pertoires de donnĂ©es, ce qui permet de prĂ©server la fonctionnalitĂ© du nƓud en cas de dĂ©faillance de l'un des disques supplĂ©mentaires.
  • Ajout du support expĂ©rimental pour la rĂ©plication transitoire (Transient Replication) et les quorum lĂ©gers (Cheap Quorums). Les rĂ©pliques temporaires ne conservent pas toutes les donnĂ©es et utilisent la restauration incrĂ©mentielle pour se synchroniser avec les rĂ©pliques complĂštes. Les quorum lĂ©gers optimisent les opĂ©rations d'Ă©criture, oĂč l'Ă©criture sur les rĂ©pliques temporaires n'est pas effectuĂ©e tant qu'un ensemble suffisant de rĂ©pliques complĂštes n'est pas disponible.
  • Ajout du support expĂ©rimental pour Java 11.
  • Ajout d'une option expĂ©rimentale pour comparer tous les arbres de Merkle (Merkle Tree). Par exemple, activer l'option sur un cluster de 3 nƓuds, avec deux rĂ©pliques identiques et une obsolĂšte, entraĂźnera la mise Ă  jour de la rĂ©plique obsolĂšte en n'utilisant qu'une seule opĂ©ration de copie de la rĂ©plique actuelle.
  • Ajout de nouvelles fonctions currentTimestamp, currentDate, currentTime et currentTimeUUID.
  • Ajout de la prise en charge des opĂ©rations arithmĂ©tiques dans les requĂȘtes CQL.
  • PossibilitĂ© d'effectuer des opĂ©rations arithmĂ©tiques entre des donnĂ©es aux types "timestamp"/"date" et "duration".
  • Ajout d'un mode pour prĂ©visualiser les flux de donnĂ©es nĂ©cessaires Ă  la restauration (nodetool repair —preview) et possibilitĂ© de vĂ©rifier l'intĂ©gritĂ© des donnĂ©es restaurĂ©es (nodetool repair —validate).
  • Dans les requĂȘtes SELECT, possibilitĂ© de traiter les Ă©lĂ©ments Map et Set.
  • Ajout de la prise en charge du parallĂ©lisme lors de la phase de construction initiale des vues matĂ©rialisĂ©es (cassandra.yaml:concurrent_materialized_view_builders).
  • La commande « nodetool cfstats » prend en charge le tri par certaines mĂ©triques et limite le nombre de lignes affichĂ©es.
  • Fourniture de paramĂštres pour restreindre la connexion des utilisateurs Ă  certains centres de donnĂ©es spĂ©cifiques.
  • Ajout de la possibilitĂ© de limiter l'intensitĂ© (rate limit) des opĂ©rations de crĂ©ation et de nettoyage des snapshots.
  • Dans cqlsh et cqlshlib, prise en charge de Python 3 (le support de Python 2.7 est toujours conservĂ©).
  • Fin de la prise en charge de la plateforme Windows. Pour faire fonctionner Cassandra sur Windows, il est recommandĂ© d'utiliser des environnements Linux basĂ©s sur le sous-systĂšme WSL2 (Windows Subsystem for Linux 2) ou des systĂšmes de virtualisation.

Lire la vidéo


Source : opennet.ru
Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster