Los desarrolladores de la base de datos ScyllaDB han anunciado la transición del proyecto a una licencia propietaria que limita el ámbito de aplicación. La versión ScyllaDB 6.2.x será la última disponible bajo la licencia AGPL. Los interesados pueden crear un fork y continuar el desarrollo de la base de código de ScyllaDB bajo la antigua licencia si lo desean.
Anteriormente, el proyecto ScyllaDB se adhería a un modelo de desarrollo Open Core, en el cual la parte básica del producto se desarrollaba bajo una licencia libre, mientras que la funcionalidad extendida estaba cerrada y solo se ofrecía a los titulares de una licencia comercial. De acuerdo con el nuevo esquema de licenciamiento, se cesará la publicación de la edición abierta ScyllaDB OSS, y el producto comercial ScyllaDB Enterprise, anteriormente cerrado, comenzará a distribuirse con la provisión de código fuente bajo una licencia propietaria. Los usuarios podrán utilizar de forma gratuita la versión completa de ScyllaDB Enterprise bajo ciertas condiciones en lugar de ScyllaDB OSS.
La nueva licencia prohíbe el uso del software para competir con los productos y servicios de los desarrolladores de ScyllaDB, así como para crear sistemas de nube "aplicación como servicio" (SaaS, software como servicio) y sistemas comerciales de "base de datos como servicio" (dBaaS). La licencia no limita el uso del producto gratuito con fines comerciales y en entornos de trabajo, siempre que el tamaño total del almacenamiento en todos los nodos del clúster no exceda los 10 TB y se utilicen no más de 50 VCPU para el procesamiento de datos. A los usuarios que no cumplan con los criterios establecidos se les sugiere adquirir una licencia comercial.
Por ejemplo, se puede usar ScyllaDB de forma gratuita en un clúster de tres nodos, siempre que cada nodo contenga 16 núcleos lógicos de CPU y almacenamiento de disco de 3 TB. Esta configuración es capaz de procesar entre 100,000 y 200,000 operaciones por segundo. Se permite la distribución de ScyllaDB y la modificación del código siempre que se entregue bajo la misma licencia, se enumere la lista completa de todos los cambios y se indique información sobre el autor original del producto.
La razón del cambio en la política de distribución de ScyllaDB fue el deseo de unificar y optimizar el desarrollo de las versiones comerciales y de código abierto que competían entre sí, cuyo mantenimiento separado generaba complicaciones, consumía muchos recursos y requería mucho esfuerzo. Además, debido a la complejidad de la arquitectura interna, la base de código de ScyllaDB fue desarrollada exclusivamente por empleados de la empresa, y el proyecto de código abierto nunca recibió la colaboración de participantes externos que aportaran sus cambios. Un punto de inflexión fue el trabajo para implementar el algoritmo de consenso Raft, tablas y el soporte integrado para la API S3, como resultado de lo cual muchas funciones auxiliares fueron trasladadas de aplicaciones externas al núcleo del sistema de gestión de bases de datos.
Al final, se decidió combinar los productos de código abierto y comerciales, lo que, por un lado, simplificará el desarrollo y, por otro, ampliará las capacidades de la versión gratuita. Por ejemplo, los usuarios que se mantengan dentro de los límites gratuitos tendrán acceso a funciones como soporte LDAP, optimizaciones PGO (reducción de latencias en textos del 33% y aumento del rendimiento de hasta un 50%), modo de transmisión a nivel de archivos (aceleración de la adición/eliminación de nodos hasta 30 veces), establecimiento de prioridades para diferentes cargas de trabajo, soporte de compresión RPC entre nodos utilizando el algoritmo ZSTD, mejor estrategia de empaquetado de datos (reducción del tamaño de almacenamiento en un 35%), soporte de cifrado, operador de Kubernetes para ScyllaDB y un ciclo de soporte extendido para lanzamientos.
ScyllaDB permite crear sistemas noSQL distribuidos, escalables y tolerantes a fallos que almacenan datos en forma de arreglos asociativos (hashes) con múltiples niveles de anidamiento. Para consultas estructuradas, se puede usar un lenguaje similar a SQL llamado CQL (Cassandra Query Language). Los clústeres basados en ScyllaDB garantizan un nivel de escalabilidad lineal, donde el rendimiento depende directamente del número de núcleos de procesador. Los datos almacenados en la base de datos se replican automáticamente en varios nodos, y en caso de fallo de un nodo, sus funciones son asumidas de inmediato por otros nodos. La adición, actualización y eliminación de nodos en el clúster se realiza sin detener el funcionamiento y sin reconfigurar otros nodos.
La base de datos ScyllaDB fue fundada hace diez años por Avi Kiviti y Dor Laor, quienes en su momento crearon un hipervisor. KVM El proyecto se creó como un intento de reescribir Apache Cassandra del lenguaje Java a C++ para alcanzar un rendimiento más alto. La base de datos es compatible a nivel de API con Apache Cassandra y Amazon DynamoDB. En las pruebas realizadas, ScyllaDB muestra un aumento de capacidad de 2 a 5 veces en comparación con Apache Cassandra. Se señala que un clúster basado en Apache Cassandra puede ser reemplazado por un clúster de ScyllaDB que contenga diez veces menos nodos, pero a pesar de tener menos nodos, supera en rendimiento en un 42%.
En cuanto a otros productos de la empresa ScyllaDB, el marco de desarrollo de aplicaciones servidoras asíncronas Seastar, los controladores y el operador de Kubernetes continuarán distribuyéndose bajo la licencia Apache 2.0. La plataforma de gestión de clústeres Scylla Manager, que anteriormente se distribuía bajo licencia propietaria, ha sido trasladada a la licencia Apache 2.0. La implementación cerrada del operador de Kubernetes distribuido geográficamente se ha combinado con el operador de Kubernetes de código abierto y será distribuida bajo la licencia Apache 2.0.
Fuente: opennet.ru
