ScyllaDB

Бесплатно
Linux

Сайт: www.scylladb.com

ScyllaDB — высокопроизводительная распределённая NoSQL wide-column база данных, разработанная как совместимая с моделью данных и протоколами Apache Cassandra с дополнением поддержки API, совместимого с Amazon DynamoDB. Проект возник как реинжиниринговая реализация идеи ширококолонных хранилищ с целью повышения пропускной способности и снижения задержек за счёт использования современных языковых средств и оптимизаций на уровне операционной системы и сетевого стека. Архитектурным ядром ScyllaDB является подход «shard-per-core», при котором каждый CPU-ядерный поток обслуживает собственный набор данных и сетевых подключений, что позволяет минимизировать конкуренцию за общие ресурсы и эффективно масштабироваться на многоядерных серверах.

Система поддерживает распределённый репликационный механизм, согласованность на уровне настроек репликации и модели записи, схожую с предлагаемой в Cassandra, включая возможности для настройки уровня согласованности для чтений и записей. ScyllaDB используется в сценариях, требующих высокой обработки потоков данных, низкой латентности и горизонтального масштабирования: телекоммуникации, аналитика в реальном времени, обработка событий и крупномасштабные OLTP-нагрузки. Развитие проекта включало оптимизации ввода-вывода, асинхронную модель выполнения задач, собственный планировщик и структуры данных, ориентированные на уменьшение накладных расходов GC и контекстных переключений.

  • Архитектура «shard-per-core»: каждый физический или логический поток процессора обслуживает собственную шарду без блокировок между ядрами, что улучшает параллелизм и предсказуемость производительности.
  • Совместимость с Cassandra: поддержка формата данных и протокола CQL (Cassandra Query Language) для упрощения миграции и интеграции с существующими клиентами и инструментами.
  • DynamoDB-совместимый API: предоставляет интерфейс, совместимый с Amazon DynamoDB, позволяющий использовать похожую модель работы и интегрироваться с приложениями, ориентированными на этот API.
  • Горизонтальное масштабирование: автоматическое распределение данных по узлам кластера с репликацией для обеспечения отказоустойчивости и увеличения ёмкости хранения и пропускной способности.
  • Настраиваемая согласованность: поддержка различных уровней согласованности операций чтения и записи, что даёт возможность балансировать между доступностью и строгой согласованностью.
  • Оптимизации ввода-вывода и памяти: минимизация накладных расходов за счёт асинхронных операций, буферизации и структур данных, снижающих нагрузку на сборщик мусора и системные вызовы.
  • Инструменты управления кластерами: функции мониторинга, автоматического балансирования и управления разметкой данных для упрощения эксплуатации в производственных средах.
  • Поддержка больших объёмов данных: предназначена для работы с терабайтами и петабайтами распределённого хранилища при высоких скоростях записи и чтения.
  • Безопасность и контроль доступа: механизмы аутентификации и авторизации на уровне кластера, шифрование каналов и данных при хранении в соответствии с эксплуатационными требованиями.
  • Ориентация на низкую латентность: архитектурные решения и оптимизации направлены на минимизацию задержек в операциях с данными при высокой конкурентной нагрузке.
Подробнее