Итак, вы, очевидно, сделали несколько осознанных решений относительно своего клиентского CL. Вы решили пожертвовать последовательностью ради скорости. Вы достигли своих целей, но предполагали, что данные всегда будут поступать на все остальные узлы кластера, к которому они принадлежат. Там нет никаких гарантий того, как вы узнали. Как это могло случиться? Я уверен, что есть несколько причин, некоторые из которых включают: сеть / проблемы, аппаратную перегрузку (I / O, CPU, и т. Д. c. - которая может вызвать пропущенные мутации), cassandra / dse, недоступную по любым причинам, и т. Д. c.
Если ни один из ваших узлов не был в автономном режиме в течение как минимум нескольких часов (будь то dse или хост недоступен), я предполагаю, что ваши узлы сбрасывают мутации , и я бы проверил две вещи: 1) nodetool tpstats 2) Посмотрите журналы вашей кассандры Для DSE: cat /var/log/cassandra/system.log | grep -i мутация | grep -i drop (и debug.log)
Я предполагаю, что вы, вероятно, отбрасываете мутации, и журналы cassandra и tpstats запишут это (tpstats покажет вам только после последнего перезапуска cassandra / dse) ). Если вы отбрасываете мутации, вам придется попытаться понять, почему, как правило, это вызывает некое давление нагрузки.
Я запланировал 1-секундный вывод vmstat, который непрерывно буферизуется в журнал с ротацией журналов, поэтому я могу go вернуться назад и проверить несколько вещей, если наши узлы начнут "неправильно себя вести". Это может помочь.
Вот где я бы начал. В любом случае, ваше решение использовать чтение / запись CL = 1 поставило вас на это место. Вы можете пересмотреть этот подход.