Может ли Select Count (*) влиять на записи в Cassandra

Я столкнулся со сценарием, когда счетчик выбора (*) в таблице каждую минуту (да, этого определенно следует избегать) вызвал огромное увеличение количества операций записи Cassandra примерно до 150 Кбайт в секунду.

Кто-нибудь может объяснить это странное поведение? Почему запрос Select значительно увеличивает количество записей в Cassandra?

Спасибо!


person GPSS    schedule 10.11.2016    source источник
comment
Это немного странно. Я не вижу смысла в том, почему C * должен увеличивать количество записей. Как вы это измерили?   -  person xmas79    schedule 10.11.2016
comment
Я не могу представить, по какой причине это могло произойти. Гораздо более вероятно, что что-то делает другой процесс ...   -  person RussS    schedule 10.11.2016
comment
Можно ли уточнить термин пишет пожалуйста? Просто чтобы различать запись на диск и мутации Кассандры. Вы видите резервное копирование запросов на запись в nodetool tpstats и отбрасывание мутаций? Или вы наблюдаете очередь диска? 150 тысяч мутаций в секунду - это большой трафик.   -  person suiterdev    schedule 10.11.2016


Ответы (2)


Если вы проверите

org.apache.cassandra.metrics:type=ReadRepair,name=RepairedBackground

а также

org.apache.cassandra.metrics:type=ReadRepair,name=RepairedBlocking

метрики, вы можете увидеть, исправляет ли его чтение, отправляя мутации. Возможно, чтение всех данных для обслуживания счетчика (*) вызывает много исправлений чтения, если ваши данные несовместимы. В этом случае снижение read_repair_chance и dclocal_read_repair_chance на столе (ALTER TABLE) может снизить нагрузку.

Другие вероятные возможности:

  • У вас включена трассировка (глобально или по таблице) как%.
  • Или, если вы используете DSE и у вас включен медленный запрос.
person Chris Lohfink    schedule 10.11.2016
comment
Спасибо, Крис! Кассандра выполнила несколько восстановлений чтения во время этих запросов select, и это, скорее всего, основная причина проблемы, с которой я столкнулся. - person GPSS; 16.11.2016