Подтвердить что ты не робот

Сравнение: Aerospike vs Cassandra

Как Aerospike, так и Cassandra говорят, что они лучше других в своих собственных тестах.

Ссылка: http://java.dzone.com/articles/benchmarking-cassandra-right и несколько других.

Кто-нибудь использовал оба из них?
Является ли Aerospike хорошим как заявлено?
Наконец, рекомендуется заменить Cassandra на Aerospike?

4b9b3361

Ответ 1

Выбор между Cassandra и Aerospike действительно зависит от вашего варианта использования больше всего. Я лично использовал как систему производства для того же проекта, и для меня Aerospike был явным победителем, но это потому, что наш прецедент должен иметь очень параллельные, низкие задержки, транзакционные, небольшие обновления в миллиарды записей с ~ 10 раз больше, чем громкость записи. Это то, чем обладает Aerospike, имеет минимальную задержку, которую я когда-либо видел в базе данных такого рода, даже при использовании пространства имен SSD. По этим причинам Aerospike был для нас ясным выбором.

С другой стороны, Cassandra лучше подходит для большого объема записи и может обрабатывать большие записи. Все работает на основе страниц, поэтому он отлично работает на не SSD, но никогда не может дать вам крайне низкой задержки, которую может использовать Aerospike, если ваши записи не будут входить в кеш. Его также стоит отметить, что Cassandra гораздо сложнее поддерживать с точки зрения операций, чем Aerospike. Для нас лично это был кошмар с операциями, и я знаю, что Netflix должен использовать значительную команду инженеров-технологов исключительно для управления их кластерами Cassandra. Кроме того, в то время как система, возможно, уже созрела, когда мы ее использовали (около версии 1.0), мы ударяли бы странные случайные ошибки утверждения и исключения, которые останавливали бы внутренние действия db, и обычно приходилось стереть данные с этих узлов в чтобы исправить это каждый раз.

Другим фактором здесь является стоимость, которая может или не может повлиять на ваше решение в зависимости от вашего приложения. Чем больше пространство ключей, тем дороже ваш аэроспический кластер будет с аппаратной точки зрения. Все ключи должны храниться в памяти независимо от того, является ли это пространством имен в памяти или ssd. После того, как вы войдете в миллиарды ключей, вам понадобится терабайт ram в вашем кластере, чтобы поддержать это с коэффициентом репликации 2. Кассандра, очевидно, не имеет этой проблемы, поскольку ключи и значения являются как хранилищами на диске.

Чтобы ответить на ваши 2 вопроса, да, это так хорошо, как он утверждает, мы храним около 5B ключей и делаем ~ 1M TPS при максимальной нагрузке, и он делает это, не разбивая пота (хотя для кластера он занимает почти 20 узлов сделайте это с 120GB RAM каждый). И насколько это целесообразно, чтобы заменить Кассандру Aerospike, для нас это была определенная победа и правильное решение. Если ваше приложение соответствует дизайну Aerospike, и оно работает, чтобы быть экономически эффективным, то, безусловно, целесообразно сделать переключатель. Когда дело доходит до него, хотя это касается вашего прецедента. Если не понятно, какой из них лучше подходит для вас, попробуйте их обоих и посмотрите, как они играют. Удачи.

Edit:

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

Ответ 2

Если вам нужна стабильная прогнозируемая производительность с низкой задержкой и без хлопот с maintanence, пойдите с Aerospike. Хотите играть в игры, отправляйтесь в Кассандру. Я привожу Cassandra более 4 лет назад в мою компанию без сожаления, но сегодня по вышеуказанным причинам я выбираю Aerospike, который является открытым исходным кодом и доступен больше, чем год назад, и biult как российский танк - с разумом.

Вам просто нужно знать пределы обеих платформ. Играйте с обоими, выбирайте с умом.

Ответ 3

В то время как многие люди используют Aerospike как чистую базу данных в памяти, он также поддерживает конфигурацию гибридной памяти, распространяя базу данных по ОЗУ, SSD/Flash и вращающемуся диску. Вот несколько коротких и более длинных ответов для решения этой проблемы. Конечно, люди хотят лучшего из обоих миров: более постоянные данные, хранящиеся на более дешевом диске, и более быстрые, более эфемерные данные хранятся в более дорогостоящей RAM-памяти или SSD.

http://www.aerospike.com/hybrid-memory/

http://www.aerospike.com/docs/architecture/storage.html

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

Ответ 4

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

Кроме того, что касается использования памяти с большим количеством ключей в Aerospike, вы можете хранить ваши записи в разных наборах/бункерах в своем пространстве имен, например, если у вас есть 10 миллиардов записей, тогда вы можете записать их в 5 наборов и 5 буферы внутри пространства имен, имеющие хэш-значение для ключей, которые будут служить в качестве значения поиска. Таким образом, вы можете иметь всего 2 миллиарда записей в пространстве имен, и это уменьшит количество ваших ключей в памяти.