Cassandra не удаляет данные сразу, она помечает удаление и удаляет его по истечении заданного времени. В то же время ваши запросы могут занять больше времени. Если вам нужно, чтобы данные удалялись быстрее, вам нужно запустить compact:
./nodetool compact <ks_name> <cf_name>
В любом случае базы данных в производстве должны быть сжаты, чтобы быть в хорошем состоянии.
Запрос 100 000 строк из Spring-boot будет затратным по времени, с точки зрения количества информации, передаваемой через доступную полосу пропускания, и с точки зрения используемой памяти. Можете ли вы опубликовать подробную информацию о своей конфигурации и проверить, не заканчивается ли память сервера микросервиса Spring-boot и не переключается ли он во время запроса?
free -h
Больше вещей. Можете ли вы проверить, какой узел вы запрашиваете из Spring-boot? Можете ли вы вставить сюда CQL, отправленный Spring-boot? Из cqlsh вы запрашиваете данные на этом узле/разделе или на все 100 тыс. строк? Используете ли вы балансировщик нагрузки, прокси-сервис или любую другую службу, например Consul, в своем проекте Spring-boot?
Чтобы решить сетевые проблемы, подключитесь по ssh к узлу cassandra, который вы ожидаете запрашивать, и проверьте с помощью tcpdump, действительно ли он получает соединение с компьютера, на котором вы запускаете свой микросервис.
Предполагая, что машина с spring-boot — 10.0.10.100, подключитесь по ssh к узлу Cassandra, который, по вашему мнению, получает соединения, и выполните:
sudo tcpdump | grep "10.0.10.100"
Теперь попробуйте запустить запросы из Spring-boot.
Откройте iftop на сервере Spring-boot и посмотрите, какая пропускная способность потребляется для получения из Cassandra.
iftop
Надеюсь, это поможет. Пожалуйста, предоставьте больше информации.
Ваше здоровье
person
Carles Mateo
schedule
23.10.2020