Scylladb против Apache Cassandra: десятилетие эволюции, прироста производительности и новых возможностей

Scylladb против Apache Cassandra: десятилетие эволюции, прироста производительности и новых возможностей

13 августа 2025 г.

Фелипе Карденти Мендес


В 2008 году Apache Cassandra установила новый стандарт для масштабируемости базы данных. Родившись, чтобы поддержать поиск в почтовых ящиках Facebook, с тех пор он был принят такими технологическими гигантами, как Uber, Netflix и Apple, где им управляют эксперты, которые также служат в качестве участников Cassandra (наряду с DataStax/IBM). И по мере масштабирования его принятия Cassandra оставалась верной своей основной миссии масштабирования на товарном оборудовании с высокой доступностью.


Но как насчет производительности? Простота? Эффективность? Эластичность?


В 2015 году, Scylladbбыл рожден, чтобы выйти за рамки неоптимального использования ресурсов КассандрыПолем Основные из создания KVM и взлома ядра Linux, основатели полагали, что ихИнженерный подход низкого уровняможет сжать значительно большую власть из базовой инфраструктуры. Время было идеальным: всего год ранее, Netflix опубликовал свои цифры, показывающие, как продвигатьApache Cassandra до 1 миллиона писать RPSПолем Это был впечатляющий подвиг, но тот, который требовал значительных инвестиций в инфраструктуру и настройки.


Идея была довольно проста (по крайней мере, теоретически): возьмите масштабируемую архитектуру Apache Cassandra и переопределение ее близко к металлу при сохранении совместимости протокола провода. Не полагаться на Java означало меньшую вариабельность задержки (плюс без остановки мира пауза), а уникальныйАрхитектура Шарда на ядраМаксимизированная пропускная способность серверов даже при тяжелой системе нагрузки. Чтобы предотвратить споры, все было сделано асинхронным, и все эти оптимизации были в паре с автономными внутренними планировщиками для минимальных операционных накладных расходов.


Это было 10 лет назад.  Хотя я не могу говорить с текущим направлением Кассандры, Scylladb с тех пор развивался довольно значительно - переходя от «толькоБолее быстрая реализация Cassandra в базу данных со своей собственной идентичностью и уникальным набором функций.


СПОЙЛЕР: В этом видео я прохожу вас через некоторые ключевые различия между Scylladb и тем, как он отличается от Apache Cassandra. Я обсуждаю различия в производительности, эластичности и таких возможностях, как приоритет рабочей нагрузки. Вы можете увидеть, как SCYLLADB отображает данные на ядро процессора, масштабируется параллельно и изменяется топологию DE-RISCS-предотвращая их обработку миллионов операций с предсказуемыми низкими задержками (и без постоянной настройки и няни).



Эволюция Scylladb

Первое поколение Scylladb было о необработанной производительности. Именно тогда мы представили асинхронную архитектуру асинхронной архитектуры, кэш на основе строк и передовые планировщики, которые достигают предсказуемых низких задержек.


Второе поколение SCYLLADB направлено на функционирование с Кассандрой, но мы фактически вышли за рамки этого. Например, мы представили нашМатериализованные взгляды и готовые к производству глобальные вторичные индексы(то, что Кассандравсе еще флаги как экспериментальные) Кроме того, Scylladb также представилПоддержка местных вторичных индексовв том же году; Они были только что введены в Cassandra 5 (по крайней мере,Три различных реализации индексации) Более того, наша реализация Paxos для легких транзакций исключенаБольшая часть накладных расходов и ограниченийв альтернативной реализации Кассандры.





Третье поколение ознаменовало наш переход к облаку, наряду с продолжающимися инновациями. Это когда был представлен генератор Scylladb-наш динамод-совместимый API. Мы добавили поддержкуZstd сжатиев 2020 году (что -тоКассандра приняла только в конце 2021 года) В течение этого периода мы значительно улучшили скорости ремонта с помощью ремонта на уровне строк и введены приоритетами рабочей нагрузки (подробнее об этом в следующем разделе).


Четвертое поколение SCYLLADB появилось в то время, когда AWS объявила о своей семье экземпляров I3EN, с узлами высокой плотности, содержащих до 60 ТБ данных (что -то Кассандра все еще изо всех сил пытается эффективно справиться) В течение этого периода мы представили стратегию инкрементного уплотнения (ICS), позволяя пользователям использовать до 70% своего хранилища перед масштабированием. Это позже превратилось в стратегию гибридного уплотнения (и теперь мы поддерживаем 90% использование хранения).


Мы также представилиИзменить захват данных (CDC)с принципиально отличающимся подходом от Кассандры. И мы значительнорасширил протокол CQLс такими понятиямиОсновность Шарда, Обход кэша, конфигурация для для завещания и многое другое.


Наконец, мы прибываем в пятое поколение Scylladb, которое все еще разворачивается. Эта фаза представляет наш путь к сильной последовательности и эластичности с плотом и таблетками. Для получения дополнительной информации о значении этого, читайте дальше…


Возможности, которые выделяют scylladb

Наши инженеры представили много интересных функций за последнее десятилетие. Основываясь на моем взаимодействии с бывшими пользователями Cassandra, я думаю, что это наиболее интересно обсуждать здесь.


ПЛАНДЫ ДАННЫЕ ДАННЫЕ

Каждая таблица scylladb разделена на более мелкие фрагменты («таблетки»), чтобы равномерно распределить данные и загружать по системе. Таблетки приносят эластичность в Scylladb, позволяя вам мгновенно удвоить, тройной или даже 10 -кратный размер кластера, чтобы вместить непредсказуемые скачки трафика. Они также обеспечивают более эффективное использование хранения, достигая до 90%. Поскольку команды могут быстро масштабироваться в ответ на всплески трафика, они могут удовлетворить SLA задержки без необходимости чрезмерного прогресса «на всякий случай».

На основе плота: сильная последовательность метаданных

RAFT вносит сильную последовательность метаданным Scylladb. Прошли те времена, когда изменение схемы могло подтолкнуть ваш кластер к разногласию, или вы потеряете доступ, потому что вы забыли обновить коэффициент репликации вашего ключа аутентификации (проблемы, которые все еще мешают Кассандре).


Рабочая нагрузка приоритетов

Рабочая нагрузка приоритетовПозволяет консолидировать несколько рабочих нагрузок под одним кластером, каждый со своим собственным SLA. По сути, он контролирует, как разные рабочие нагрузки конкурируют за системные ресурсы. Команды используют его для определения приоритетов срочных запросов на применение, которые требуют немедленного времени отклика по сравнению с другими, которые могут переносить задержки с более слабыми задержками (например, большие сканирования). Общие варианты использования включают в себя сбалансирование обработки партии в реальном времени, расщепление записей от чтения и консолидацию рабочей нагрузки/инфраструктуры.


Ремонтные операции

Операции на основе ремонта гарантируют, что ваши данные кластера остаются в синхронизации даже во время топологических изменений. Это адресатДавний недостаток согласованности данных в Apache Cassandra, где такие операции, как замена неудачных узлов, могутпривести к потере данныхПолем Scylladb также полностью устраняет проблему воскресения данных, благодаряСборник мусора на основе ремонтаПолем


Постепенное уплотнение

Инкрементное уплотнение (ICS) является стратегией уплотнения по умолчанию в Scylladb более пяти лет. ICS значительно снижает временное усиление пространства, в результате чего можно больше дискового пространства для хранения пользовательских данных - и что устраняет типичное требование 50% свободного пространства в вашем диске. Там нет сопоставимой функции Кассандры. Кассандра недавно ввел Unified Copaction, которое еще не доказалось.


Кэш на основе строк

Кэш на основе строк Scylladb также уникален. Он включен по умолчанию и не требует ручной настройки. СОбходной кешРасширение, вы можете предотвратить загрязнение кеша, предотвращая признание важных предметов. Кроме того,SSTABLE INDEX CACHINGЗначительно сокращает время доступа ввода/вывода при получении данных с диска.


Ограничения параллелистики и ограничения по цене

SCYLLADB включает в себя ограничения параллелистики и ограничения по ставке на раздела для защиты от неожиданных шипов. Независимо от того, имея ли дело с неправильным поведением клиента или наводнением запросов на конкретный ключ, Scylladb обеспечивает устойчивость, когда Кассандра часто терпит неудачу.


Совместимость DynamoDB

Scylladb также предлагает динамодб-совместимый слой, что еще больше дистанцируется от своего Apache Cassandra Origins. Это позволяет командам запускать свои рабочие нагрузки DynamoDB в любом облаке или на PREM-без изменений кода, а также на 50% меньше затрат. Это помогло довольно много команд объединить несколько рабочих нагрузок на Scylladb.

Что дальше?

На недавнем саммите по шкале монстров генеральный директор/соучредитель Дор Лаор поделился взглядом на то, что будет дальше для Scylladb. Несколько основных моментов ...


Готов сейчас (см. Этопост в блогеиСтраница продуктаДля получения подробной информации):

  • Возможность безопасного запуска при использовании хранения 90%
  • Поддержка кластеров со смешанными узлами типа экземпляра
  • Динамическое обеспечение и гибкий кредит
  • Векторный поиск

Короткий срок:

  • Сильно последовательные таблицы
  • Служба инъекции неисправности
  • Прозрачный ремонт
  • Объект и многоуровневое хранилище
  • Плот для сильно последовательных таблиц

Долгосрочный

  • Multi-key transactions
  • Аналитика и преобразования с UDFS
  • Автоматизированная балансировка больших перегородков
  • Неиспользуемая инфраструктура для большей стабильности и надежности
  • Режим репликации для более гибких и эффективных изменений инфраструктуры


Для получения подробной информации, посмотрите полный разговор здесь:



Чтобы закрыть, scylladbявляетсябыстрее, чем Кассандра (я скоро поделюсь здесь своими последними результатами эталона). Но как Scylladb, так и Cassandra развивались до такой степени, что Scylladb больше не «просто» более быстрая кассандра. Мы развивались за пределами Кассандры. Если ваш проект нуждается в более предсказуемой производительности - и/или может извлечь выгоду из эластичности, эффективности и оптимизации простоты, на которых мы сосредоточены уже в течение многих лет - вы также можете рассмотреть возможность развития за пределы Кассандры.


Чтобы узнать больше о Scylladb, посетитеhttps://www.scylladb.com/Полем Вы можете получить доступ к бесплатным книгам базы данных, мастер -классам и многим другимhttps://resources.scylladb.com/


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE