Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в 10 раз быстрее

На проходящей в эти дни конференции Cassandra Summit 2015 представлена новая открытая СУБД ScyllaDB, в рамках которой предпринята попытка переписать СУБД Apache Cassandra с Java на C++. ScyllaDB обеспечивает полную совместимость с NoSQL СУБД Cassandra, но позволяет добиться существенного увеличения производительности, демонстрируя скорость обработки запросов и отзывчивость на уровне СУБД Redis. Новую СУБД представили Ави Кивити (Avi Kiviti) и Дор Лаор (Dor Laor), в своё время создавшие такие известные открытые проекты как гипервизор KVM и операционную систему OSv с воплощением идеи запуска приложений поверх гиперевизора. Код проекта распространяется под лицензией AGPL.

По заявлению разработчиков ScyllaDB обеспечивает десятикратное увеличение пропускной способности обработки запросов на каждом узле по сравнению с оригинальной Apache Cassandra, в 99% случаев успевая обработать запрос менее чем за миллисекунду. Например, на типовом узле ScyllaDB способен обрабатывать около одного миллиона транзакций в секунду. Возможность обработать больше запросов на одном узле, позволяет существенно снизить затраты на кластер, в котором для достижения заданных характеристик потребуется на порядок меньше узлов, чем при создании кластера на основе классической СУБД Cassandra. ScyllaDB также упрощает создание запаса производительности, необходимой при обработке нетипичных пиков нагрузки.

Одним из факторов, позволившим добиться подобных показателей производительности, является использование разработанного теми же авторами C++ фреймворка Seastar, нацеленного на создание сложных серверных приложений, обрабатывающих запросы в асинхронном режиме с учётом особенностей современного оборудования (распараллеливание на многоядерных системах, учёт попадания данных в процессорный кэш, оптимизация для накопителей SSD и полная утилизация пропускной способности 10/40-гигабитных сетевых карт).

ScyllaDB также обладает такими свойствами, как избавление от задержек при проведении упаковки и восстановления целостности БД, отсутствие сборщика мусора, возможность переконфигурации кластера (удаление/добавление узлов) без остановки работы, линейная масштабируемость при которой производительность находится в прямой зависимости от числа процессорных ядер, наличие средств для пакетной загрузки и выгрузки больших объёмов данных из хранилищ Hadoop и Spark.
ScyllaDB поддерживает модель хранения данных на базе семейства столбцов (ColumnFamily, хэши с несколькими уровнями вложенности) и позволяет использовать SQL-подобный язык структурированных запросов CQL (Cassandra Query Language).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.