Тестирование производительности базы данных NoSQL

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

  • What tests you want to see? Can you please help me to form requirements?
    • How database operates in cluster?
    • В сломанном кластере?
    • В облачной среде?
    • Как он может выполнять запросы при открытии 10 тыс. соединений?
  • What tools you will use?
    • Is it something like JMeter->http server->database?
    • Jmeter-> приложение TCP-> база данных?
    • Другой?

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

С нетерпением жду вашей помощи.

-вова


person trnl    schedule 27.01.2012    source источник


Ответы (2)


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

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

person Alex Popescu    schedule 27.01.2012
comment
Если вы хотите также увидеть некоторые более простые или неправильные тесты, о которых я говорил, вы найдете хороший выбор в Тестирование NoSQL - person Alex Popescu; 27.01.2012
comment
YCSB стоит того, чтобы его рассмотрели. Спасибо! Единственная проблема в том, что нам нужно запустить тесты для разных языков, чтобы проверить производительность разных драйверов. - person trnl; 01.02.2012

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

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

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

Из приведенных вами примеров => Redis, Cassandra и MongoDB сильно отличаются:

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

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

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

person tolitius    schedule 28.01.2012
comment
Дело в том, что мы рассматриваем эту базу данных как продукт. Таким образом, мы не предъявляли никаких требований к тестированию, только требование к тестированию, и мы пытаемся сформировать стратегию — что и как выполнять тестирование производительности. - person trnl; 01.02.2012
comment
рассматриваете эту базу данных как продукт =› для решения конкретной проблемы или просто для академических целей? - person tolitius; 01.02.2012
comment
Все ссылки на ваш гитхаб битые. - person 0xcaff; 26.04.2017