Gli sviluppatori del DBMS ScyllaDB hanno annunciato il passaggio del progetto a una licenza proprietaria che limita l'ambito di applicazione. Il ramo ScyllaDB 6.2.x sarà l'ultimo disponibile sotto licenza AGPL. Gli interessati possono creare un fork e continuare lo sviluppo della base di codice di ScyllaDB sotto la vecchia licenza.
In precedenza, il progetto ScyllaDB seguiva un modello di sviluppo Open Core, in cui la parte di base del prodotto è sviluppata sotto licenza libera, mentre le funzionalità avanzate sono chiuse e fornite solo ai titolari di licenze commerciali. Secondo il nuovo schema di licenza, la pubblicazione della versione aperta di ScyllaDB OSS verrà interrotta, mentre il prodotto commerciale precedentemente chiuso, ScyllaDB Enterprise, inizierà a essere distribuito fornendo il codice sorgente sotto licenza proprietaria. Gli utenti potranno utilizzare gratuitamente la versione completa di ScyllaDB Enterprise, rispettando alcune condizioni.
La nuova licenza vieta l'uso del software per competere con i prodotti e i servizi degli sviluppatori di ScyllaDB, così come per creare sistemi cloud "applicazione come servizio" (SaaS, software-as-a-service) e sistemi commerciali "DB come servizio" (dBaaS, database-as-a-service). La licenza non limita l'uso del prodotto gratuito a scopi commerciali e in ambienti di lavoro, a condizione che la dimensione totale dello storage su tutti i nodi del cluster non superi i 10TB e che per l'elaborazione dei dati venga utilizzato un massimo di 50 VCPU. Gli utenti che non soddisfano i criteri dichiarati sono invitati ad acquistare una licenza commerciale.
Ad esempio, è possibile utilizzare gratuitamente ScyllaDB su un cluster di tre nodi, se ciascun nodo contiene 16 core logici CPU e una capacità di archiviazione di 3TB. Questa configurazione è in grado di gestire da 100.000 a 200.000 operazioni al secondo. La distribuzione di ScyllaDB e la modifica del codice sono consentite a condizione che vengano fornite sotto la stessa licenza, elencando l'intero elenco di tutte le modifiche e indicando le informazioni sull'autore originale del prodotto.
La ragione del cambiamento nella politica di distribuzione di ScyllaDB è stata il desiderio di unificare e ottimizzare lo sviluppo delle versioni commerciali e open source in competizione tra loro, il cui mantenimento separato creava difficoltà, portava via molte risorse e consumava energie. Inoltre, a causa della complessità dell'architettura interna, il codice sorgente di ScyllaDB è stato sviluppato esclusivamente dai dipendenti dell'azienda e il progetto open source non ha visto l'emergere di collaboratori esterni che apportassero le proprie modifiche. Un punto di svolta è stata l'implementazione dell'algoritmo di consenso Raft, delle tabelle e del supporto API S3 integrato, grazie ai quali molte funzioni secondarie sono state trasferite da applicazioni esterne nel nucleo del DBMS.
Alla fine, si è deciso di unire i prodotti open source e commerciali, il che semplificherà lo sviluppo da un lato e amplierà le funzionalità della versione gratuita dall'altro. Ad esempio, gli utenti che rientrano nei limiti gratuiti avranno accesso a funzionalità come il supporto LDAP, l'ottimizzazione PGO (riduzione dei tempi di attesa nei testi del 33% e aumento delle prestazioni fino al 50%), la modalità di streaming a livello di file (accelerazione dell'aggiunta/rimozione dei nodi fino a 30 volte), la possibilità di impostare le proprie priorità per diversi carichi, il supporto della compressione del traffico RPC tra i nodi tramite l'algoritmo ZSTD, una strategia di imballaggio dei dati migliorata (riduzione delle dimensioni dello storage fino al 35%), supporto per la crittografia, un operatore Kubernetes per ScyllaDB e un lungo ciclo di supporto per le versioni.
ScyllaDB consente di creare sistemi noSQL distribuiti, scalabili e altamente disponibili, conservando i dati sotto forma di array associativi (hash) con più livelli di nidificazione. Per le query strutturate può essere utilizzato un linguaggio simile a SQL chiamato CQL (Cassandra Query Language). I cluster basati su ScyllaDB offrono un livello di scalabilità lineare, dove le prestazioni dipendono direttamente dal numero di core della CPU. I dati inseriti nel DB vengono automaticamente replicati su più nodi e, in caso di guasto di un nodo, le sue funzioni vengono rapidamente assunte da altri nodi. L'aggiunta, l'aggiornamento e la rimozione di nodi nel cluster avviene senza interrompere il funzionamento e senza riconfigurare gli altri nodi.
Il database ScyllaDB è stato fondato dieci anni fa da Avi Kiviti e Dor Laor, che in passato avevano creato un hypervisor KVM e il sistema operativo OSv. Il progetto è stato creato come tentativo di riscrivere Apache Cassandra dal linguaggio Java a C++ per ottenere prestazioni superiori. Il database è compatibile a livello API con Apache Cassandra e Amazon DynamoDB. Nei test eseguiti, ScyllaDB ha mostrato un aumento della capacità di assorbimento da 2 a 5 volte rispetto ad Apache Cassandra. Si segnala che un cluster basato su Apache Cassandra può essere sostituito da un cluster ScyllaDB contenente 10 volte meno nodi, ma nonostante il numero ridotto di nodi, supera le prestazioni del 42%.
Per quanto riguarda gli altri prodotti dell'azienda ScyllaDB, il framework per lo sviluppo di applicazioni server asincrone Seastar, i driver e l'operatore Kubernetes continueranno a essere forniti con licenza Apache 2.0. La piattaforma di gestione del cluster Scylla Manager, precedentemente distribuita con licenza proprietaria, è stata migrata alla licenza Apache 2.0. L'implementazione chiusa dell'operatore Kubernetes distribuito geograficamente è stata unita all'operatore Kubernetes open source e sarà fornita con licenza Apache 2.0.
Fonte: opennet.ru
