Gli sviluppatori del DB ScyllaDB hanno annunciato il passaggio del progetto a una licenza proprietaria che limita l'ambito di applicazione. La versione ScyllaDB 6.2.x sarà l'ultima disponibile sotto licenza AGPL. Gli interessati possono creare un fork e continuare lo sviluppo del codice sorgente di ScyllaDB sotto la vecchia licenza.
In precedenza, il progetto ScyllaDB adottava un modello di sviluppo Open Core, in cui la parte base del prodotto viene sviluppata sotto licenza libera, mentre le funzionalità avanzate sono chiuse e fornite solo ai possessori di una licenza commerciale. Secondo il nuovo schema di licenza, la pubblicazione della versione open source di ScyllaDB OSS sarà interrotta, mentre il prodotto commerciale precedentemente chiuso, ScyllaDB Enterprise, inizierà a essere distribuito con la fornitura del codice sorgente sotto licenza proprietaria. Gli utenti potranno utilizzare gratuitamente la versione completa di ScyllaDB Enterprise rispettando una serie di condizioni.
La nuova licenza vieta l'uso del software per competere con i prodotti e servizi degli sviluppatori di ScyllaDB, oltre a 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 per scopi commerciali e in ambienti di lavoro, a condizione che la dimensione totale dello spazio di archiviazione su tutti i nodi del cluster non superi i 10 TB e che per l'elaborazione dei dati non vengano utilizzati più di 50 VCPU. Gli utenti che non soddisfano i criteri dichiarati sono invitati ad acquistare una licenza commerciale.
Ad esempio, si può utilizzare gratuitamente ScyllaDB su un cluster di tre nodi, se ogni nodo contiene 16 core logici CPU e uno spazio di archiviazione su disco di 3 TB. Una configurazione simile è in grado di elaborare 100-200 mila operazioni al secondo. La distribuzione di ScyllaDB e le modifiche al codice sono consentite a condizione che vengano fornite con la stessa licenza, elencando tutte le modifiche e indicando informazioni sull'autore originale del prodotto.
Il motivo dietro il cambiamento della politica di distribuzione di ScyllaDB è stata la volontà di unificare e ottimizzare lo sviluppo delle versioni commerciali e open source concorrenti, il cui mantenimento separato creava difficoltà, richiedeva molte energie e consumava risorse. Inoltre, a causa della complessità dell'architettura interna, la base di codice di ScyllaDB si è sviluppata esclusivamente grazie agli sforzi dei dipendenti dell'azienda e il progetto open source non ha mai visto l'arrivo di collaboratori esterni per apportare modifiche. Un punto di svolta è stata l'implementazione dell'algoritmo di consenso Raft, delle tabelle e del supporto API S3 integrato, grazie alla quale molte funzioni ausiliarie sono state trasferite da applicazioni esterne al nucleo del DBMS.
Alla fine, è stata decisa l'integrazione dei prodotti open source e commerciali, il che, da un lato, semplificherà lo sviluppo e, dall'altro, amplierà le funzionalità della versione gratuita. Ad esempio, gli utenti che rientrano nei limiti gratuiti avranno accesso a funzioni come il supporto LDAP, ottimizzazioni PGO (riduzione dei ritardi nei testi fino al 33% e aumento delle prestazioni fino al 50%), modalità di streaming a livello di file (accelerazione nell'aggiunta/rimozione di nodi fino a 30 volte), possibilità di impostare priorità diverse per carichi variabili, supporto per la compressione del traffico RPC tra nodi utilizzando l'algoritmo ZSTD, una strategia di imballaggio dei dati migliorata (riduzione della dimensione di archiviazione fino al 35%), supporto per la crittografia e un operatore Kubernetes per ScyllaDB, con un lungo ciclo di supporto per le versioni.
ScyllaDB consente di creare sistemi noSQL distribuiti, scalabili e resilienti, memorizzando i dati sotto forma di array associativi (hash) con più livelli di nidificazione. Per le query strutturate è possibile utilizzare un linguaggio simile a SQL chiamato CQL (Cassandra Query Language). I cluster basati su ScyllaDB offrono un livello di scalabilità lineare, in cui le prestazioni sono direttamente proporzionali al numero di core della CPU. I dati memorizzati nel database vengono automaticamente replicati su più nodi, e in caso di guasto di un nodo, le sue funzioni vengono assunte al volo da altri nodi. L'aggiunta, l'aggiornamento e la rimozione dei nodi nel cluster avviene senza interrompere il servizio e senza la necessità di riconfigurare altri nodi.
Il DBMS ScyllaDB è stato fondato dieci anni fa da Avi Kiviti e Dor Laor, che in passato hanno creato un hypervisor. KVM e il sistema operativo OSv. Il progetto è stato creato nel 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 condotti, ScyllaDB mostra un incremento della capacità pari a 2-5 volte rispetto ad Apache Cassandra. Si segnala che un cluster basato su Apache Cassandra può essere sostituito da un cluster ScyllaDB composto da 10 volte meno nodi, ma nonostante il numero ridotto di nodi, ScyllaDB 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 trasferita sotto licenza Apache 2.0. L'implementazione chiusa dell'operatore Kubernetes geograficamente distribuito è stata unita all'operatore Kubernetes open source e sarà fornita sotto licenza Apache 2.0.
Fonte: opennet.ru
