cassandra - 在 cassandra 3.0.10 中清除准备好的语句缓存
问题描述
我们在 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)
我们已经更正了准备好的语句,并希望刷新准备好的语句缓存以从头开始。我们已经停止并重新启动了 cassandra 实例,但准备好的语句计数未重置。
Cassandra 3.0.10 安装在 centos 上,我们使用 svcadm disable/enable cassandra 来停止/启动 cassandra。
我注意到在更高版本的 cassandra 中,例如 3.11.1,系统键空间下有一个prepared_statements 表。关闭 cassandra 并删除文件${CASSANDRA_HOME}/data/data/system/prepared_statements-*
,然后重新启动 cassandra 实际上会重置prepared_statement 缓存。
感谢您对此的任何帮助。
谢谢。
更新:2018-06-01 我们目前正在使用一种解决方法来清除与某些表关联的准备好的语句,方法是删除索引然后在表上重新创建索引。这将丢弃依赖于已定义索引的准备好的语句。目前,这是我们能做的最多的事情。问题是,如果这不适用于没有定义索引的表。
仍然需要一个更好的方法来做到这一点,例如一些管理命令来清除缓存。
解决方案
推荐阅读
- c# - C# 等效于 powershell get-childitem -recurse,同时省略某些文件夹
- simulation - 如何在 LBM 中添加或删除流体(格子 Boltzmann 方法)
- c++ - 如何使用复制构造器来输出我的变量?
- android - 带有斜线段自定义视图的水平进度条Android
- android - 未显示正确的应用程序包名称的广告
- r - 通过对连续行求和直到 0 进行分组
- amazon-web-services - AWS ecs Fargate
- c - 返回指向具有最小 ASCII 值的字符的指针的程序
- javascript - Jinja 如果选中复选框,如何获取
- javascript - 如何在Javascript中正确地将函数转换为字符串?