Les développeurs de la base de données ScyllaDB ont annoncé le passage du projet à une licence propriétaire, restreignant son champ d'application. La branche ScyllaDB 6.2.x sera la dernière disponible sous la licence AGPL. Les personnes intéressées peuvent créer un fork et continuer le développement de la base de code ScyllaDB sous l'ancienne licence.
Auparavant, le projet ScyllaDB adhérait à un modèle de développement Open Core, où la partie de base du produit est développée sous une licence libre, tandis que la fonctionnalité avancée est fermée et fournie uniquement aux détenteurs d'une licence commerciale. Selon le nouveau schéma de licence, la publication de l'édition ouverte ScyllaDB OSS sera interrompue, et le produit commercial ScyllaDB Enterprise, précédemment fermé, sera distribué avec la fourniture du code source sous licence propriétaire. À la place de ScyllaDB OSS, les utilisateurs pourront utiliser gratuitement la version complète de ScyllaDB Enterprise sous certaines conditions.
La nouvelle licence interdit l'utilisation du logiciel pour concurrencer les produits et services des développeurs de ScyllaDB, ainsi que pour créer des systèmes en cloud « application en tant que service » (SaaS, software-as-a-service) et des systèmes commerciaux « base de données en tant que service » (dBaaS, database-as-a-service). Cette licence ne limite pas l'utilisation du produit gratuit à des fins commerciales et dans des environnements de travail, à condition que la taille totale de stockage sur tous les nœuds du cluster ne dépasse pas 10 To, et que l'on n'utilise pas plus de 50 vCPU pour le traitement des données. Aux utilisateurs ne respectant pas les critères requis, il est proposé d'acheter une licence commerciale.
Par exemple, il est possible d'utiliser gratuitement ScyllaDB sur un cluster de trois nœuds, si chaque nœud contient 16 cœurs logiques de CPU et un espace de stockage disque de 3 To. Une telle configuration est capable de traiter 100 à 200 000 opérations par seconde. La distribution de ScyllaDB et les modifications du code sont autorisées sous la condition qu'elles soient fournies sous la même licence, avec une liste complète de toutes les modifications et des informations sur l'auteur original du produit.
La raison du changement de politique de distribution de ScyllaDB était le désir d'unifier et d'optimiser le développement de variantes commerciales et open source qui concurrençaient entre elles, le maintien séparé de celles-ci créant des difficultés, consommant beaucoup d'énergie et de ressources. De plus, en raison de la complexité de l'architecture interne, la base de code de ScyllaDB a été développée exclusivement par les employés de l'entreprise, et le projet open source n'a jamais réussi à attirer des contributeurs extérieurs partageant leurs modifications. Le tournant a été marqué par le travail sur la mise en œuvre de l'algorithme de consensus Raft, des tables et du support intégré de l'API S3, grâce auquel de nombreuses fonctions auxiliaires ont été transférées d'applications externes au sein du système de gestion de base de données.
En fin de compte, il a été décidé de fusionner les produits open source et commerciaux, ce qui simplifiera le développement d'une part, et d'autre part, élargira les fonctionnalités de la version gratuite. Par exemple, les utilisateurs respectant les limites gratuites auront accès à des fonctionnalités telles que la prise en charge de LDAP, l'optimisation PGO (réduction des latences dans les textes de 33 % et augmentation des performances jusqu'à 50 %), un mode de transmission par flux au niveau des fichiers (accélérant l'ajout/suppression de nœuds jusqu'à 30 fois), la possibilité de définir des priorités différentes pour différentes charges de travail, la prise en charge de la compression du trafic RPC entre les nœuds à l'aide de l'algorithme ZSTD, une stratégie d'emballage des données améliorée (réduction de la taille du stockage jusqu'à 35 %), la prise en charge du cryptage, un opérateur Kubernetes pour ScyllaDB et un long cycle de support des versions.
ScyllaDB permet de créer des systèmes noSQL distribués, scalables et résilients, stockant des données sous forme de tableaux associatifs (hashs) avec plusieurs niveaux d'imbrication. Pour des requêtes structurées, un langage de type SQL appelé CQL (Cassandra Query Language) peut être utilisé. Les clusters basés sur ScyllaDB assurent un niveau de scalabilité linéaire, où les performances dépendent directement du nombre de cœurs de processeur. Les données stockées dans la base de données sont automatiquement répliquées sur plusieurs nœuds, et en cas de défaillance d'un nœud, ses fonctions sont prises en charge en temps réel par d'autres nœuds. L'ajout, la mise à jour et la suppression de nœuds dans le cluster se font sans interrompre le fonctionnement et sans reconfiguration des autres nœuds.
La base de données ScyllaDB a été fondée il y a dix ans par Avi Kiviti et Dor Laor, qui ont par le passé créé l'hyperviseur. KVM et le système d'exploitation OSv. Le projet a été lancé dans le but de réécrire Apache Cassandra du Java au C++ pour atteindre une performance supérieure. La base de données est compatible au niveau API avec Apache Cassandra et Amazon DynamoDB. Dans les tests effectués, ScyllaDB montre une augmentation de la capacité de traitement de 2 à 5 fois par rapport à Apache Cassandra. Il est noté qu'un cluster basé sur Apache Cassandra peut être remplacé par un cluster ScyllaDB contenant 10 fois moins de nœuds, tout en surpassant les performances de 42 % malgré ce nombre réduit de nœuds.
En ce qui concerne les autres produits de ScyllaDB, le framework de développement d'applications serveur asynchrones Seastar, ainsi que les pilotes et l'opérateur Kubernetes continueront d'être fournis sous la licence Apache 2.0. La plateforme de gestion de cluster Scylla Manager, précédemment distribuée sous une licence propriétaire, a été migrée vers la licence Apache 2.0. L'implémentation fermée de l'opérateur Kubernetes distribué géographiquement a été fusionnée avec l'opérateur Kubernetes open source et sera fournie sous la licence Apache 2.0.
Source : opennet.ru
