Тестирование производительности NoSQL db - PullRequest
4 голосов
/ 27 января 2012

Предположим, у вас есть база данных nosql - redis, cassandra, mongodb.И вам нужно проверить общую производительность для этой базы данных - различные платформы, операционные системы, даже языки программирования, которые используются для тестирования.Он не привязан к конкретному приложению или схеме.

  • Какие тесты вы хотите увидеть?Можете ли вы помочь мне сформировать требования?
    • Как работает база данных в кластере?
    • В разбитом кластере?
    • В облачной среде?
    • Как он может выполнять запросы при открытии 10 тыс. Соединений?
  • Какими инструментами вы будете пользоваться?
    • Это что-то вроде JMeter-> http server-> database?
    • Jmeter-> tcp app-> database?
    • Другое?

Весь материал, который я нашел о тестировании производительности базы данных, похож на тестирование базы данных как части какого-либо продукта (конкретная схема, конкретная среда),Задумывались ли вы о тестировании производительности базы данных, когда база данных является самим продуктом?

Ждем вашей помощи.

-vova

Ответы [ 2 ]

5 голосов
/ 27 января 2012

В Тесты NoSQL и оценки производительности Я собрал список правильных тестов в том смысле, что они четко определяют цель теста и сравнивают схожие функции (яблоки с яблоками). сравнения); существует слишком много тестов, которые не соответствуют хотя бы одному из этих фундаментальных требований. Пройдя через них, вы сможете извлечь интересующие вас фрагменты кода, а также узнать, какие инструменты были использованы, и получить некоторый код для сравнения.

На данный момент наиболее универсальным эталонным тестом NoSQL является YCSB (тестирование сервиса Yahoo Cloud). Недавно блог Cubrid опубликовал результаты тестирования этого эталона для некоторых из самых популярных решений NoSQL, и это может дать вам представление о том, как интерпретировать результаты.

2 голосов
/ 28 января 2012
  • проверить общую производительность для этой базы данных

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

Например, вам действительно нужны сумасшедшие быстрые записи? Вы в порядке с потерей данных? Вы не против потратить время на настройку при сбое? Планируете ли вы увеличить или уменьшить масштаб? Планируете ли вы ТБ данных? и т.д ..

Из приведенных вами примеров => Redis, Cassandra и MongoDB совершенно разные:

Redis - это, в основном, кеш, и он действительно быстрый, но, будучи просто кешем, он мало поможет вам в агрегации средней сложности. Однако в настоящее время это лучший кэш (мое мнение). «Редис + убийца БД» - идеальная комбинация. Он также имеет встроенный инструмент для тестирования , который вы можете попробовать.

Cassandra - это твердый продукт, созданный по образцу Google Big Table (но я уверен, что вы уже это знаете). Он хорошо масштабируется, если у вас много узлов, но если вы, например, достигаете ТБ данных, для добавления узлов может потребоваться несколько дней. Это также не самый простой, чтобы получить. Но если вы готовы заплатить, есть отличные ребята из Datastax , которые могут убрать всю сложность. У меня есть очень простая Cassandra Bombardier , которая может помочь вам начать.

MongoDB - это отличная БД по нескольким причинам: очень сексуальный и простой язык запросов, хорошая документация, огромное сообщество и т. Д. Не так уж и хорош в других аспектах: нужно тратить время на его правильную проверку и затем перефразируя это снова Riak , где это делается автоматически]. Это очень быстро (запись), если данные [не только индекс] помещаются в ОЗУ, они начинают очень быстро замедляться, если этого не происходит. Существует постоянное предположение, что вы можете потерять данные (от одного из инженеров Basho: "Я лично потратил некоторое время на поиск способов продемонстрировать, что MongoDB потеряет записи в случае сбоя" ), запросы на агрегацию могут занять некоторое время из-за небольшого набора данных. У меня есть игровая площадка Mongo Performance , которая может оказаться для вас полезной.

...