停止Cassandra物化视图构建

时间:2016-11-11 17:48:49

标签: database cassandra

有没有办法在Cassandra(3.7)中停止构建物化视图?

背景:我创建了两个物化视图 A B (完全公开 - 我可能在构建完成之前尝试删除它们)并且这些视图似乎是永远卡住...任何在同一个桌面上创建另一个视图 C 的尝试似乎都会挂起。使用nodetool

nodetool.viewbuildstatus <keyspace>.<view>

显示 A B 的STARTED和UNKNOWN组合,以及 C 中的视图的STARTED组合。使用cql:

select * from system.views_builds_in_progress

列出了所有视图,但世代号 last_token 在过去24小时内没有变化( generation_number 实际上为 A )。

1 个答案:

答案 0 :(得分:2)

没有记录,但nodetool stop实际上采用任何压缩类型,而不仅仅是列出的那些(视图构建是其中之一)。所以你可以简单地说:

nodetool stop VIEW_BUILD

或者您可以使用org.apache.cassandra.db:type=CompactionManager mbean&#39; stopCompaction操作直接点击JMX。

所有那些真正要做的就是为视图构建器设置一个标志,以便在下一个循环中停止。如果它抛出一个未被捕获的异常或其他东西,以便它不再做任何事情(值得检查系统/输出日志),那么该止损也不会做任何事情。在那种情况下,它并没有真正伤害任何东西,但可以忽略它并重试。最坏情况重启节点。