Deweloperzy bazy danych ScyllaDB ogłosili o przejściu projektu na licencję proprietarną, która ogranicza zakres stosowania. Gałąź ScyllaDB 6.2.x będzie ostatnią dostępną na licencji AGPL. Zainteresowane strony mogą stworzyć fork i kontynuować rozwój bazy kodu ScyllaDB na starej licencji.
Wcześniej projekt ScyllaDB stosował model rozwoju Open Core, w którym podstawowa część produktu rozwijana była na mocy wolnej licencji, a rozszerzona funkcjonalność była zamknięta i dostarczana jedynie posiadaczom licencji komercyjnej. Zgodnie z nowym schematem licencjonowania publikacja otwartej edycji ScyllaDB OSS zostanie zakończona, a wcześniej zamknięty produkt komercyjny ScyllaDB Enterprise zacznie być dystrybuowany wraz z udostępnieniem kodu źródłowego na licencji proprietarnej. Zamiast ScyllaDB OSS użytkownicy będą mogli bezpłatnie korzystać z pełnej wersji ScyllaDB Enterprise pod warunkiem spełnienia określonych warunków.
Nowa licencja zabrania korzystania z oprogramowania do konkurowania z produktami i usługami rozwijanymi przez ScyllaDB, a także do tworzenia systemów chmurowych "aplikacja jako usługa" (SaaS, software-as-a-service) oraz komercyjnych systemów "BD jako usługa" (dBaaS, database-as-service). Licencja nie ogranicza wykorzystania bezpłatnego produktu w celach komercyjnych i w środowiskach produkcyjnych, pod warunkiem, że całkowity rozmiar przechowywania na wszystkich węzłach klastra nie przekracza 10 TB, a do przetwarzania danych używane jest nie więcej niż 50 VCPU. Użytkownikom, którzy nie spełniają podanych kryteriów, proponuje się zakup komercyjnej licencji.
Na przykład, bezpłatnie można korzystać ze ScyllaDB na klastrze złożonym z trzech węzłów, jeśli każdy węzeł zawiera 16 logicznych rdzeni CPU i przestrzeń dyskową o rozmiarze 3TB. Taka konfiguracja jest w stanie obsługiwać 100-200 tysięcy operacji na sekundę. Dystrybucja ScyllaDB oraz wprowadzanie zmian w kodzie jest dozwolone pod warunkiem dostarczenia pod tą samą licencją, wymienienia pełnej listy wszystkich zmian i podania informacji o pierwotnym autorze produktu.
Powodem zmiany polityki dystrybucji ScyllaDB było dążenie do ujednolicenia i optymalizacji rozwoju konkurencyjnych wersji komercyjnych i otwartych, których oddzielne wsparcie stwarzało trudności, zabierało dużo sił i pochłaniało zasoby. Ze względu na złożoność wewnętrznej architektury, baza kodu ScyllaDB rozwijała się wyłącznie dzięki pracownikom firmy, a projekt otwarty nie zyskał zewnętrznych uczestników przekazujących swoje zmiany. Przełomowym momentem były prace nad wdrożeniem algorytmu konsensusu Raft, tabel i wbudowanej obsługi API S3, w wyniku czego wiele funkcji pomocniczych było przenoszonych z aplikacji zewnętrznych do głównego składu DBMS.
Ostatecznie zdecydowano się na połączenie produktów open-source i komercyjnych, co z jednej strony uprości rozwój, a z drugiej - rozszerzy możliwości wersji darmowej. Na przykład, użytkownicy mieszczący się w darmowych limitach uzyskają dostęp do takich możliwości, jak wsparcie LDAP, optymalizacje PGO (zmniejszenie opóźnień w tekstach o 33% i zwiększenie wydajności do 50%), tryb przesyłania strumieniowego na poziomie plików (przyspieszenie dodawania/usuwania węzłów do 30 razy), możliwości ustalania priorytetów dla różnych obciążeń, wsparcie kompresji RPC-traffic między węzłami z użyciem algorytmu ZSTD, ulepszona strategia pakowania danych (zmniejszenie rozmiaru przechowywania do 35%), wsparcie szyfrowania, operator Kubernetes dla ScyllaDB, długi cykl wsparcia dla wersji.
ScyllaDB umożliwia tworzenie rozproszonych, skalowalnych i odpornych na błędy systemów noSQL, które przechowują dane w formie asocjacyjnych tablic (hashy) z wieloma poziomami zagnieżdżenia. Do strukturalnych zapytań można używać języka podobnego do SQL, czyli CQL (Cassandra Query Language). Klastery oparte na ScyllaDB zapewniają liniowy poziom skalowalności, w którym wydajność jest ściśle zależna od liczby rdzeni procesora. Dane umieszczone w DB automatycznie replikowane są na kilka węzłów, a w przypadku awarii węzła, jego funkcje na bieżąco przejmowane są przez inne węzły. Dodawanie, aktualizowanie i usuwanie węzłów w klastrze odbywa się bez przerywania pracy i bez rekonfiguracji innych węzłów.
Baza danych ScyllaDB została założona dziesięć lat temu przez Avi Kiviti i Dora Laora, którzy wcześniej stworzyli hipernadzorcę. KVM Projekt powstał jako próba przepisania Apache Cassandra z języka Java na C++, aby uzyskać wyższą wydajność. Baza danych jest zgodna na poziomie API z Apache Cassandra oraz Amazon DynamoDB. W przeprowadzonych testach ScyllaDB w porównaniu do Apache Cassandra wykazuje wzrost przepustowości o 2-5 razy. Zauważono, że klaster oparty na Apache Cassandra można zastąpić klastrem ScyllaDB, zawierającym 10 razy mniej węzłów, ale mimo mniejszej liczby węzłów przewyższającym wydajność o 42%.
Jeśli chodzi o inne produkty firmy ScyllaDB, to framework do tworzenia asynchronicznych aplikacji serwerowych Seastar, sterowniki oraz operator Kubernetes będą dostarczane na licencji Apache 2.0. Platforma do zarządzania klastrami Scylla Manager, wcześniej rozpowszechniana na licencji własnościowej, została przeniesiona na licencję Apache 2.0. Zamknięta implementacja terytorialnie rozproszonego operatora Kubernetes została połączona z otwartym operatorem Kubernetes i będzie dostarczana na licencji Apache 2.0.
Źródło: opennet.ru
