Die Entwickler der Datenbank ScyllaDB haben angekĂŒndigt, das Projekt auf eine proprietĂ€re Lizenz umzustellen, die den Anwendungsbereich einschrĂ€nkt. Die Version ScyllaDB 6.2.x wird die letzte sein, die unter der Lizenz AGPL verfĂŒgbar ist. Interessierte können einen Fork erstellen und die Weiterentwicklung der Codebasis von ScyllaDB unter der alten Lizenz fortsetzen.
FrĂŒher folgte das Projekt ScyllaDB dem Open-Core-Entwicklungsmodell, bei dem der grundlegende Teil des Produkts unter einer freien Lizenz entwickelt wird, wĂ€hrend erweiterte Funktionen geschlossen und nur Inhabern einer kommerziellen Lizenz zur VerfĂŒgung gestellt werden. GemÀà dem neuen Lizenzmodell wird die Veröffentlichung der offenen Version von ScyllaDB OSS eingestellt, und das zuvor geschlossene kommerzielle Produkt ScyllaDB Enterprise wird mit Quellcode unter einer proprietĂ€ren Lizenz verteilt. Anstelle von ScyllaDB OSS können Nutzer die vollstĂ€ndige Version von ScyllaDB Enterprise kostenfrei nutzen, sofern bestimmte Bedingungen erfĂŒllt sind.
Die neue Lizenz verbietet die Verwendung der Software, um Produkte und Dienstleistungen der Entwickler von ScyllaDB zu konkurrenzieren, sowie die Erstellung von Cloud-Systemen als "Application as a Service" (SaaS) und kommerziellen Systemen als "Database as a Service" (dBaaS). Die Lizenz beschrĂ€nkt jedoch nicht die kommerzielle Nutzung des kostenlosen Produkts in Arbeitsumgebungen, solange der Gesamt-Speicherplatz aller Knoten im Cluster 10 TB nicht ĂŒberschreitet und nicht mehr als 50 VCPU fĂŒr die Datenverarbeitung verwendet werden. Nutzern, die die angegebenen Kriterien nicht erfĂŒllen, wird geraten, eine kommerzielle Lizenz zu erwerben.
Beispielsweise kann ScyllaDB kostenlos in einem Cluster aus drei Knoten genutzt werden, wenn jeder Knoten 16 logische CPU-Kerne und einen Speicherplatz von 3 TB hat. Eine solche Konfiguration kann 100.000 bis 200.000 Operationen pro Sekunde verarbeiten. Die Verbreitung von ScyllaDB und die DurchfĂŒhrung von Ănderungen am Code sind erlaubt, unter der Bedingung, dass diese unter der gleichen Lizenz bereitgestellt werden, eine vollstĂ€ndige Liste aller Ănderungen beigefĂŒgt wird und Informationen ĂŒber den ursprĂŒnglichen Autor des Produkts enthalten sind.
Der Grund fĂŒr die Ănderung der Verbreitungspolitik von ScyllaDB ist der Wunsch, die Entwicklung der konkurrierenden kommerziellen und offenen Varianten zu vereinheitlichen und zu optimieren, deren getrennte Pflege Schwierigkeiten bereitete, viele Ressourcen beanspruchte und KrĂ€fte abzweigte. Aufgrund der KomplexitĂ€t der internen Architektur wurde die Codebasis von ScyllaDB ausschlieĂlich von den Mitarbeitern des Unternehmens entwickelt und das Open-Source-Projekt hatte niemals externe Mitwirkende, die ihre Ănderungen einbrachten. Ein Wendepunkt war die Implementierung des Raft-Konsensus-Algorithmus, von Tabellen und integrierter API-S3-UnterstĂŒtzung, bei der viele Hilfsfunktionen von externen Anwendungen in die Hauptdatenbank verlagert wurden.
Letztendlich wurde beschlossen, die offenen und kommerziellen Produkte zu vereinen, was einerseits die Entwicklung vereinfachen und andererseits die Möglichkeiten der kostenlosen Version erweitern wird. Beispielsweise erhalten Nutzer, die innerhalb der kostenlosen Grenzen bleiben, Zugang zu Funktionen wie LDAP-UnterstĂŒtzung, PGO-Optimierungen (Reduzierung der Latenz in Texten um 33 % und Steigerung der Leistung um bis zu 50 %), Datei-Level-Streaming (Beschleunigung beim HinzufĂŒgen/Entfernen von Knoten um bis zu 30-mal), die Möglichkeit, PrioritĂ€ten fĂŒr unterschiedliche Lasten festzulegen, die UnterstĂŒtzung von RPC-Verkehrskompression zwischen Knoten mithilfe des ZSTD-Algorithmus, eine verbesserte Datenpackstrategie (Reduzierung des Speicherplatzes um bis zu 35 %), UnterstĂŒtzung von VerschlĂŒsselung, einen Kubernetes-Operator fĂŒr ScyllaDB und einen langen Release-Support-Zyklus.
ScyllaDB ermöglicht die Erstellung von verteilten, skalierbaren und fehlertoleranten NoSQL-Systemen, die Daten in Form von assoziativen Arrays (Hashes) mit mehreren Ebenen von Verschachtelungen speichern. FĂŒr strukturierte Abfragen kann eine SQL-Ă€hnliche Sprache, CQL (Cassandra Query Language), verwendet werden. Cluster basierend auf ScyllaDB bieten eine lineare Skalierbarkeit, bei der die Leistung direkt von der Anzahl der CPU-Kerne abhĂ€ngt. Die in der Datenbank gespeicherten Daten werden automatisch auf mehrere Knoten repliziert, und bei einem Ausfall eines Knotens ĂŒbernehmen andere Knoten dessen Funktionen nahtlos. Das HinzufĂŒgen, Aktualisieren und Löschen von Knoten im Cluster erfolgt ohne Unterbrechung des Betriebs und ohne Umkonfiguration anderer Knoten.
Die Datenbank ScyllaDB wurde vor zehn Jahren von Avi Kiviti und Dor Laor gegrĂŒndet, die damals den Hypervisor entwickelt haben. KVM und das Betriebssystem OSv. Das Projekt wurde ins Leben gerufen, um Apache Cassandra von Java nach C++ neu zu schreiben, um eine höhere Leistung zu erzielen. Die Datenbank ist API-kompatibel mit Apache Cassandra und Amazon DynamoDB. In durchgefĂŒhrten Tests zeigt ScyllaDB im Vergleich zu Apache Cassandra eine Steigerung der Durchsatzleistung um das 2- bis 5-Fache. Es wird festgestellt, dass ein Cluster auf Basis von Apache Cassandra durch ein ScyllaDB-Cluster ersetzt werden kann, das 10-mal weniger Knoten enthĂ€lt, aber dennoch mit 42% höherer Leistung als bei einer geringeren Anzahl von Knoten abschneidet.
Was die anderen Produkte von ScyllaDB betrifft, so werden das Framework zur Entwicklung asynchroner Serveranwendungen Seastar, die Treiber und der Kubernetes-Operator weiterhin unter der Apache 2.0-Lizenz angeboten. Die Plattform zur Clusterverwaltung Scylla Manager, die zuvor unter einer proprietÀren Lizenz vertrieben wurde, wurde auf die Apache 2.0-Lizenz umgestellt. Die geschlossene Implementierung des geografisch verteilten Kubernetes-Operators wird mit dem offenen Kubernetes-Operator kombiniert und unter der Apache 2.0-Lizenz bereitgestellt.
Quelle: opennet.ru
