Большое количество надгробий в разделе значительно повлияет на производительность, если оно будет включено в результат. Хорошая рецензия https://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets говорит об этом. В зависимости от запроса, он может закончить чтение всех 100 000 надгробий, а также, возможно, исходных данных, если на другом sstable для удовлетворения запроса. Это генерирует много мусора в куче и будет влиять на GC JVM вместе со значительным количеством ЦП и ввода-вывода для одного запроса.
Однако, если надгробия являются точечными удалениями, а не диапазонами надгробий, и ваш запрос направляется непосредственно к разделу + кластеризация не удаленного ключа, вы будете в порядке. Хотя это тонкая грань, и я бы порекомендовал не пытаться делать это (что, если кто-то попытается прочитать его из приложения в качестве задачи ops / test? Это может вызвать длинные GC и негативно повлиять на кластер). Надгробия диапазона, хранящиеся в индексе раздела, десериализуются как часть чтения, к которому нужно перейти, чтобы попасть в размер индекса столбца строки, поэтому даже если они не читаются напрямую, это все равно может существенно повлиять на скорость выделения в зависимости от того, как был вставлен ваш надгробный камень.
В cassandra.yaml
установлен порог предупреждения / сбоя надгробной плиты, так что он будет сообщать вам о том, попадает ли ваш запрос в них, но может быть трудно определить, пока вы не достигнете точки сбоя и запросы не прекратятся, поскольку только что сообщили в журналах .
Я бы порекомендовал вам установить временные рамки для ваших разделов, чтобы ограничить количество надгробий в каждом из них.