清除 cassandra 3.0.10 中准备好的语句缓存

sph*_*xnz 6 cassandra

我们在centos上安装了cassandra 3.0.10。开发人员在准备语句时犯了一些编码错误。结果是准备好的语句缓存溢出,我们总是收到驱逐错误消息。错误如下图所示:

INFO [ScheduledTasks:1] 2017-12-07 10:38:28,216 QueryProcessor.java:134 - 7 prepared statements discarded in the last minute because cache limit reached (8178944 bytes) 
Run Code Online (Sandbox Code Playgroud)

我们已经更正了准备好的语句,并希望刷新准备好的语句缓存以从头开始。我们已停止并重新启动 cassandra 实例,但准备好的语句计数未重置。

Cassandra 3.0.10 安装在 centos 上,我们使用 svcadm 禁用/启用 cassandra 来停止/启动 cassandra。

我注意到在cassandra的更高版本中,例如3.11.1,系统键空间下有一个prepared_statements表。关闭cassandra并删除文件${CASSANDRA_HOME}/data/data/system/prepared_statements-*,然后重新启动cassandra实际上会重置prepared_statement缓存。

感谢对此的任何帮助。

谢谢。

更新:2018-06-01 我们目前正在使用一种解决方法,通过删除索引然后在表上重新创建索引来清除与某些表关联的准备好的语句。这会丢弃依赖于定义的索引的准备好的语句。目前,这是我们能做的最多的事情了。问题是,如果这对于没有定义索引的表不起作用。

仍然需要更好的方法来做到这一点,例如一些管理命令来清除缓存。