Команда ScyllaDB работает над альтернативой DynamoDB от Amazon с открытым исходным кодом. Project Alternator — это API-интерфейс, совместимый с DynamoDB, написанный на C ++ и являющийся частью Scylla.
ScyllaDB — это база данных NoSQL с открытым исходным кодом, совместимая с Apache Cassandra. Разработчики Scylla описывают его как замену Apache Cassandra с производительностью в 10 раз лучше. Компания заявляет, что ScyllaDB обеспечивает производительность горизонтального масштабирования более 1000000 операций ввода-вывода в секунду на узел, масштабируется до сотен узлов и стабильно обеспечивает 99-процентную задержку хвоста менее 1 миллисекунды.
Amazon DynamoDB — это управляемая база данных NoSQL, которая может использоваться как для хранения документов, так и для хранения данных типа «ключ-значение», и используется для обработки многотерабайтных таблиц, обрабатывающих миллионы запросов на чтение или запись в секунду, например на сайте розничной торговли Amazon. Хотя DynamoDB чрезвычайно популярен, это коммерческий облачный сервис, работающий только на Amazon Web Services (AWS), и его использование может быть дорогостоящим.
Стоимость DynamoDB побудила разработчиков ScyllaDB создать более экономичную альтернативу ПО с открытым исходным кодом, которая позволила бы пользователям развертывать базу данных, совместимую с DynamoDB, в любом кластере по своему выбору, будь то локально или в любом общедоступном или частном облаке.
Исходная версия Scylla уже была довольно близка к DynamoDB, но использует язык запросов Cassandra (CQL), который синтаксически близок к языку структурированных запросов (SQL), в то время как DynamoDB использует нотацию объектов JavaScript (JSON) для запросов.
Новый проект Alternator означал бы, что не нужно изменять вызовы API DynamoDB с точки зрения разработчика. Система базы данных принимает ввод от клиентского приложения в формате API, совместимом с DynamoDB, и прозрачно переводит его в соответствующие вызовы Scylla, а затем возвращает данные в формате, совместимом с DynamoDB. Решение для потоковой передачи данных на основе Apache Spark для миграции данных из существующих экземпляров DynamoDB в Scylla находится в стадии разработки.
Генератор все еще находится в разработке. Он еще не общедоступен, хотя уже является частью исходного кода Scylla. Разработчики предоставили документы с подробной информацией о том, что поддерживается, а что еще не поддерживается. Говорят, что даже сейчас большинство стандартных приложений будет работать. В основном реализован JSON HTTP API, работает индексация, реализовано несколько зон, и многие другие функции будут работать.
Однако существуют различия в согласованности из-за разных моделей, которые могут быть проблемой в определенных случаях. В течение следующих нескольких месяцев команда Scylla планирует укрепить код, чтобы довести его до производственного качества. В дальнейшем они планируют предложить выпуск Scylla Enterprise, содержащий программное обеспечение генератора переменного тока, а также выпустить версию для работы в Scylla Cloud.