Разработчики СУБД ScyllaDB объявили о переводе проекта на проприетарную лицензию, ограничивающую область применения. Ветка ScyllaDB 6.2.x станет последней, доступной под лицензией AGPL. При желании заинтересованные лица могут создать форк и продолжить развитие кодовой базы ScyllaDB под старой лицензией.
Ранее проект ScyllaDB придерживался модели разработки Open Core, при которой базовая часть продукта развивается под свободной лицензией, а расширенная функциональность закрыта и поставляется только обладателям коммерческой лицензии. В соответствии с новой схемой лицензирования публикация открытой редакции ScyllaDB OSS будет прекращена, а ранее закрытый коммерческий продукт ScyllaDB Enterprise начнёт распространяться с предоставлением исходного кода под проприетарной лицензией. Вместо ScyllaDB OSS пользователи смогут бесплатно использовать полную версию ScyllaDB Enterprise при выполнении ряда условий.
Новая лицензия запрещает использование ПО для конкуренции с продуктами и сервисами разработчиков ScyllaDB, а также для создания облачных систем "приложение как сервис" (SaaS, software-as-a-service) и коммерческих систем "БД как сервис" (dBaaS, database-as-as-service). Лицензия не ограничивает использование бесплатного продукта в коммерческих целях и в рабочих окружениях, но при условии, что суммарный размер хранилища на всех узлах кластера не превышает 10ТБ, а для обработки данных используется не более 50 VCPU. Пользователям, не соответствующим заявленным критериям, предлагается купить коммерческую лицензию.
Например, бесплатно можно использовать ScyllaDB на кластере из трёх узлов, если каждый узел содержит 16 логических ядер CPU и дисковое хранилище, размером 3TB. Подобная конфигурация способна обрабатывать 100-200 тысяч операций в секунду. Распространение ScyllaDB и внесение изменений в код разрешается при условии поставки под той же лицензией, перечисления полного списка всех изменений и указания информации об изначальном авторе продукта.
Причиной смены политики распространения ScyllaDB стало желание унифицировать и оптимизировать разработку конкурирующих друг с другом коммерческого и открытого вариантов, раздельное поддержание которых создавало сложности, отнимало много сил и расходовало ресурсы. При этом, в силу сложности внутренней архитектуры, кодовая база ScyllaDB развивалась исключительно силами сотрудников компании и у открытого проекта так и не появилось сторонних участников, передающих свои изменения. Переломным моментом стала работа по реализации алгоритма консенсуса Raft, таблиц и встроенной поддержки API S3, в результате которой многие вспомогательные функции переносились из внешних приложений, в основной состав СУБД.
В конечном счёте было решено объединить открытый и коммерческий продукты, что с одной стороны упростит разработку, а с другой - расширит возможности бесплатной версии. Например, укладывающиеся в бесплатные лимиты пользователи получат доступ к таким возможностям, как поддержка LDAP, PGO-оптимизации (снижение задержек в текстах на 33% и повышение производительности до 50%), режим потоковой передачи на уровне файлов (ускорение добавления/удаления узлов до 30 раз), выставление своих приоритетов для разных нагрузок, поддержка сжатия RPС-трафика между узлами при помощи алгоритма ZSTD, улучшенная стратегия упаковки данных (сокращение размера хранилища до 35%), поддержка шифрования, Kubernetes-оператор для ScyllaDB, длительный цикл поддержки релизов.
ScyllaDB позволяет создавать распределённые, масштабируемые и отказоустойчивые noSQL-системы, хранящие данные в форме ассоциативных массивов (хэшей) с несколькими уровнями вложенности. Для структурированных запросов может использоваться SQL-подобный язык CQL (Cassandra Query Language). Кластеры на базе ScyllaDB обеспечивают линейный уровень масштабируемости, при котором производительность находится в прямой зависимости от числа процессорных ядер. Помещаемые в БД данные автоматически реплицируются на несколько узлов, а при сбое узла, его функции на лету подхватываются другими узлами. Добавление, обновление и удаление узлов в кластере производится без остановки работы и без переконфигурирования других узлов.
СУБД ScyllaDB основана десять лет назад Ави Кивити (Avi Kiviti) и Дором Лаором (Dor Laor), в своё время создавшими гипервизор KVM и операционную систему OSv. Проект был создан в качестве попытки переписать Apache Cassandra с языка Java на C++ для достижения более высокой производительности. СУБД совместима на уровне API с Apache Cassandra и Amazon DynamoDB. В проведённых тестах ScyllaDB по сравнению с Apache Cassandra демонстрирует прирост пропускной способности в 2-5 раз. Отмечается, что кластер на базе Apache Cassandra можно заменить кластером ScyllaDB, содержащим в 10 раз меньше узлов, но несмотря на меньшее число узлов на 42% обгоняющим по производительности.
Что касается других продуктов компании ScyllaDB, то фреймворк разработки асинхронных серверных приложений Seastar, драйверы и оператор Kubernetes и продолжат поставляться под лицензией Apache 2.0. Платформа управления кластером Scylla Manager, ранее распространяемая под проприетарной лицензией, переведена на лицензию Apache 2.0. Закрытая реализация территориально распределённого оператора Kubernetes объединена с открытым оператором Kubernetes и будет поставляться под лицензией Apache 2.0.
|