有没有办法在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 )。
答案 0 :(得分:2)
没有记录,但nodetool stop
实际上采用任何压缩类型,而不仅仅是列出的那些(视图构建是其中之一)。所以你可以简单地说:
nodetool stop VIEW_BUILD
或者您可以使用org.apache.cassandra.db:type=CompactionManager
mbean&#39; stopCompaction
操作直接点击JMX。
所有那些真正要做的就是为视图构建器设置一个标志,以便在下一个循环中停止。如果它抛出一个未被捕获的异常或其他东西,以便它不再做任何事情(值得检查系统/输出日志),那么该止损也不会做任何事情。在那种情况下,它并没有真正伤害任何东西,但可以忽略它并重试。最坏情况重启节点。