Cassandra Gossipinfo объяснила серьезность

Мне не удалось найти хорошую документацию/объяснение того, что severity указывает в nodetool gossipinfo. искал подробное объяснение, но не мог найти подходящего.


person Segmented    schedule 14.11.2017    source источник


Ответы (2)


Серьезность — это значение, добавленное к задержке в динамическом снитче, чтобы определить, на какую реплику координатор будет отправлять запросы чтения DATA и DIGEST.

Его значение будет зависеть от ввода-вывода, используемого при сжатии, а также будет пытаться прочитать /proc/stat (так же, как утилита iostat), чтобы получить фактическую статистику диска в виде его веса. В версиях cassandra после 3.10 это удалено в https://issues.apache.org/jira/browse/CASSANDRA-11738. В предыдущих версиях вы можете отключить его, установив -Dcassandra.ignore_dynamic_snitch_severity в настройках jvm. Проблема в том, что он взвешивает ввод-вывод так же, как и задержку. Таким образом, если узел перегружен GC и из-за этого не выполняет большого количества операций ввода-вывода, он может в конечном итоге рассматриваться как цель большинства операций чтения, даже если это худший из возможных узлов для отправки запросов.

Теперь вы все еще можете использовать JMX, чтобы установить значение (равное 1), если вы хотите исключить его из использования для чтения. В качестве примера использования используется nodetool disablebinary, поэтому приложение не будет запрашивать его напрямую, а затем установит серьезность на 1. Затем этот узел будет запрашиваться кластером только в том случае, если есть запрос CL.ALL или восстановление чтения. Это способ отключить узел для обслуживания с точки зрения чтения, но при этом позволить ему получать мутации, чтобы он не отставал.

person Chris Lohfink    schedule 14.11.2017
comment
Спасибо @Chris Lohfink за подробное объяснение. - person Segmented; 15.11.2017

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

P.S. См. ответ Криса об изменениях в версиях поста 3.10 - я не знал об этих изменениях...

person Alex Ott    schedule 14.11.2017