Pull to refresh

Comments 30

Да, так и есть, за пару-тройку часов написал, хотелось уже выложить результаты, свопнуть так сказать из оперативки и заняться плотно другими делами)

Не факт что их можно сравнивать в принципе. feature-set совершенно разный.
Если scylla можно сравнивать с cassandra (по факту они совместимы даже на протокольном уровне)
db-engines.com/en/system/Cassandra%3BScyllaDB,
то похоже что aerospike это вообще из другой оперы
db-engines.com/en/system/Aerospike%3BCassandra

В качестве key-value прекрасно работают все из перечисленных. Собственно ycsb тем и удобна, что одни и те же операции позволяет выполнять на разных БД.

Спасибо, материала по aerospike и Scylla очень мало, видимо мало кто рискует их пихать в продакшен. Интересно было бы почитать сравнение redis, memcached, tarantool, aerospike в качестве key-value.
Спасибо, материала по aerospike и Scylla очень мало, видимо мало кто рискует их пихать в продакшен.

Про aerospike не в курсе, а вот scylla много кто использует в проде, потому что оно позволяет решить проблемы с производительностью кассандры в некоторых случаях практически без ломающих изменений.

Судя по тому что Scylla до сих пор не начали особо себя монетизировать и по отсутствию ее в рейтинге g2, а также по отсутствию в https://www.datanyze.com/market-share/databases--272, не сильно много кто использует.

С чего вы взяли что Scylla «не начали особо себя монетизировать»?

На dbengines стабильно в районе 100-110 места.
Рейтинг db-engines не про монетизацию. Иначе глядя на место в рейтинге HBase можно было бы подумать, что они успешный бизнес, а не энтузиасты.

А на ту мысль, что сейчас не особо монетизируется, наводит тот факт, что никаких ограничений по функциональности в бесплатной версии нет (возможно есть, но я их не увидел, если так прошу указать, где их можно посмотреть). Что в свою очередь резко снижает количество желающих(=нуждающихся) заплатить. Что равно формулировке «не особо монетизируется».

Конечно какая-то отдельная большая компания может решить платить просто за поддержку 24/7, но это явно не будет столько же стоить сколько можно брать за включение того или иного функционала (число серверов, объем данных, консистентность и т.д.).
> на ту мысль, что сейчас не особо монетизируется, наводит тот факт, что никаких ограничений по функциональности в бесплатной версии нет (возможно есть, но я их не увидел, если так прошу указать, где их можно посмотреть).

Разница как раз есть, все описано в таблице тут www.scylladb.com/product/scylla-enterprise

Плюс есть DBaaS который очень популярен, и есть Managed Service который тоже неплохо идет. И Scylla Manager который не работает с опенсорсом в кластерах больше 5 нод.

Ничего более конкретного я сказать не могу, помимо того что когда я оттуда увольнялся, я не пожалел несколько тысяч долларов и выкупил все свои опционы.
Согласен, определенные фишки конечно в платной версии есть, я имел в виду, что они не выглядят как строго обязательные, без которых невозможно нормально работать. Вполне допускаю что на самом деле монетизация идет полных ходом, однако со стороны не вполне понятно за счет чего именно. Условно говоря я прямо сейчас могу развернуть 50 инстансов Scylla на кластере, залить туда пару ПБ и это будет работать. Зачем тогда платить и тем более платить много?

В отличие от Aerospike, где я на бесплатной версии могу только 600 ГБ поставить. Тут уже понятно что серьезному бизнесу с объемами придется платить за entreprise по любому.
> определенные фишки конечно в платной версии есть

Значит все таки есть?

> я имел в виду, что они не выглядят как строго обязательные, без которых невозможно нормально работать.

Что будет платным и что нет решалось не от фонаря. Да, работать можно и без них, так же как и кассандра прекрасно работает без фишек от датастакс, но почему-то клиенты платят, и неплохо платят. Команда scylladb — выходцы из red hat, а не злостные проприетарщики, опенсорс сообщество очень многое дает фирме а не только берет. Не зря эта модель настолько успешна. Плюс опять же — managed services и DBaaS для тех кто вообще не хочет иметь дело с администрированием сложной системы, и готов платить.

> В отличие от Aerospike, где я на бесплатной версии могу только 600 ГБ поставить. Тут уже понятно что серьезному бизнесу с объемами придется платить за entreprise по любому.

так они от этого еще и страдают — ни один начинающий проект не будет смотреть на них всерьез потому что дорого, а на Scylla OSS — запросто. Зато когда подрастут и увидят необходимость в дополнительных фичах или просто в хорошей поддержке — начнут с радостью выписывать чеки
Вполне возможно, если бизнес идет я только рад, что они при этом не зажимают функционал, БД действительно весьма удачная.

Спасибо. Так как redis, memcached и tarantul относятся скорее к классу in-memory, поэтому до них руки вряд ли дойдут. Сейчас меня интересуют решения для BigData, есть в планах протестировать в первую очередь самые популярные из этого класса.

Привет, я один из разработчиков Тарантула (до 2019г), и сейчас работаю в ScyllaDB директором по разработке. Могу сравнить эти два продукта изнутри. В первую очередь, Сцилла — это LSM, то есть база для больших объёмов данных на диске. В Тарантуле для этого используется Винил. По умолчанию в Тарантул используется memtx, который хранит все данные в оперативной памяти (но при этом они персистентны). Аэроспайк находится где-то посередине между Сциллой и Тарантулом, т.к. хранит индексы в оперативной памяти, а данные на диске.
На современных SSD и NVME Сцилла ведёт себя просто отлично — огромная производительность вставок, хорошая скорость чтений, если вам нужно просто большое хранилище для большого объёма данных выбор достаточно очевидный. Даже mail.ru использует Сциллу, несмотря на то что в Тарантуле есть Винил: www.scylladb.com/presentations/high-load-storage-of-users-actions-with-scylladb-and-hdds

При этом в Aerospike и особенно в Tarantool гораздо больше возможностей. В Тарантуле есть такие фишки как функциональные, частичные индексы, индексы по json, транзакции, встроенный сервер приложений. То есть получается что это инструменты для разных задач и с разными требованиями к железу (самая дешёвая стоимость хранения единицы информации в Сцилла, самая высокая — в Тарантул, Аэроспайк посередине), и сравнивать их по производительности в общем-то не очень корректно.

По субъективной оценке, операции по добавлению и удалению узлов, ребалансировке данных и т.д. наиболее зрелые в Сцилле.
Был бы весьма признателен если сможете прокомментировать нестабильность динамики ops в ходе Insert для Scylla или дать контакты коллег, которые могут прояснить этот вопрос. Могу выслать логи ycsb (хотя стоит сразу сказать что в них ничего кроме колебания скорости нет и ошибок нет) и iostat, если требуется. Есть конфиги Scylla еще.
Scylla используется бОльшей частью adtech индустрии, плюс такие мелкие ребята как Disney, McDonalds, Discord, Comcast и т.д. Никакого риска нет, софт стабильный уже много лет.
Занятно на этом Аэроспайке. Вроде как есть возможность скачать «community edition», проходишь — авотфиг, вводи о себе данные и получай триальную версию.

«Так и задумывалось?» Или мне не по глазам возможность скачать ту самую версию без SMS регистрации?

Любят они все собирать почтовые ящики, есть такое) Однако можно скачать community (и даже enterprise) без смс например под CentOS через wget по прямой ссылке:
https://www.aerospike.com/download/server/latest/artifact/el8


Другие варианты тут:
https://www.aerospike.com/docs/operations/install/linux/index.html

Спасибо за ссылки.

То есть нужно некриво покопаться, чтобы таки найти ту бесплатную версию. Но это ладно, кто захочет — покопается. Но вот зачем ссылка якобы на бесплатную версию (Community edition) вот тут

www.aerospike.com/download

ведёт на тот же триал?

Задал вопрос их тех.поддержке — посмотрю, будет ли ответ.
Дополнение: ответила тех.поддержка — действительно, глюк на сайте. Сказали, исправят по возможности оперативно.

Ну и дали рабочую ссылку:
www.aerospike.com/lp/aerospike-community-edition
Scylla работает как (почти) рилтаймовый софт, и гнать нагрузку на тех же хостах где стоит база — некорректно. Оттуда и сбои и прочие странности — вместо того чтоб отдать базе ядра процессоров, она борется за время на них с нагрузкой.

В проде (адекватном конечно) так тоже не бывает — БД не бежит там же где поды со спарком например.
Получается совокупная нагрузка:
Scylla(клиент+сервер) = CpuUsage_A -> OperationsPerSecond_X
Aerospike(клиент+сервер) = CpuUsage_B -> OperationsPerSecond_Y


Где OperationsPerSecond_X < OperationsPerSecond_Y

Иными словами клиенты и база совместно более требовательны к ресурсам что при прочих равных ведет к меньшей производительности.

В нашем случае клиенты как правило на тех же нодах что и инстансы БД, поэтому особенно интересна именно такая комбинация.
Я не в курсе того как именно работает aerospike, но scylla быстрее кассандры при том же фичерсете не потому что «магия» а потому что архитектура у нее намного более эффективная. Там дело не только в том что она переписана на C++ и не страдает от JVM GC pauses, но еще и потому что она основана на seastar framework, где каждое ядро обрабатывается отдельным неблокирующим тредом, и в самой базе шарды не от фонаря как в кассандре а четко по одному шарду на ядро, и по реактору который обрабнатывает нагрузку данного шарда. При таком раскладе, БД линейно масштабируется как вверх так и вбок, и при умении писать качественный код будет выжимать из железа все на что оно способно, даже если это огромные ящики с сотнями ядер и терабайтами памяти и NVMe.

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

Данный бенчмарк это явный антипаттерн для Scylla, и я бы не стал считать это честным сравнением, тем более что в реальных проектах, клиенты к БД не бегут там же где и сама БД (это тоже собственно антипаттерн).

Если очень хочется гонять все именно так, можно просто выделить Scylla мЕньший набор ядер и процент памяти (это все настраивается если надо), и запинить процессы нагрузки на свободные ядра через taskset или isolcpus
Идея понятна, попробую ограничить пул тредов, спасибо.
тут всплыло что через isolcpus лучше не делать, там потом проблемы с перегрузкой cpu0. Лучше инвертированную маску в tuned
это сама Scylla, и надо побольше чем 2 :)

воркеры YCSBтоже надо изолировать
  1. В прошлый раз обсуждение битвы тяжеловесов Cassandra VS HBase вызвало весьма бурную дискуссию,
  2. В моем тесте оптимизированная версия HBase (далее HB) работает с CS на равных,

В первом случае вывод был таков: "В целом получается такой вывод — в заданных условиях имеет место существенное преимущество HBase".


Не совсем понятен смысл упоминания этих двух результатов в контексте статьи, можете пояснить?

Sign up to leave a comment.

Articles