cassandra стресс-тестирование распределения записи

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


person Alex    schedule 15.07.2015    source источник


Ответы (1)


Поскольку вам интересно знать все узлы, на которые повлиял запрос, я бы рекомендовал изучить трассировку.

Вот несколько подходов, которые вы можете использовать:

  1. Используйте cassandra-stress и включите трассировку с помощью nodetool settraceprobability на каждый из ваших узлов C* и установите для него низкое значение, например 0,01. Это позволит запрашивать 1% ваших запросов, для которых вы можете наблюдать результаты трассировки в системе через таблицы system_traces.events и session (см. эту статью для получения дополнительной информации о том, как использовать эти таблицы). Трассировка будет включать в себя информацию, например, какой узел использовался в качестве координатора, какие другие узлы использовались в качестве реплик для операций чтения/записи и сколько времени потребовалось для обработки отдельных шагов. Обратите внимание, что то, как ваше приложение в конечном итоге будет запрашивать данные, может немного отличаться от cassandra-stress, поскольку то, какие узлы запрашиваются, зависит от вашего Конфигурация кластера. cassandra-stress использует JavaDriverClient#connect. Вы захотите сравнить свою конфигурацию с тем, что делает JavaDriverClient, и понять различия. Вы также можете изменить JavaDriverClient, чтобы он соответствовал вашему приложению.
  2. Вы также можете написать тест для своего приложения, использующего cassandra. У java-драйвера есть API для отслеживания и наблюдения за данными, которые я задокументировал в видео здесь. Кроме того, когда вы возвращаете ResultSet, существует метод getExecutionInfo(), который предоставляет такую ​​информацию, как какие хосты были опробованы, но это включает только узлы, которые использовались в качестве координатора, а не все реплики.
person Andy Tolbert    schedule 15.07.2015
comment
проблема, с которой я сталкиваюсь с инструментом стресса, заключается в том, что я не понимаю, как передать ему свой собственный набор данных. спасибо за публикацию видео кстати, это очень полезно. Я думаю, что отслеживание будет иметь большое значение для выяснения этого. Спасибо еще раз! - person Alex; 15.07.2015
comment
Спасибо! Новый инструмент стресса, представленный в версии 2.1, имеет множество возможностей для запуска стресса по пользовательским схемам, я думаю, что некоторые элементы форматирования немного изменились со времени написания этой записи в блоге, но это было бы хорошей отправной точкой, если вы его еще не видели: datastax.com/dev/ блог/ - person Andy Tolbert; 15.07.2015