首页 文章

停止Cassandra物化视图构建

提问于
浏览
1

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

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

nodetool.viewbuildstatus <keyspace>.<view>

显示 AB 的STARTED和UNKNOWN的组合,以及 C 中的视图的STARTED . 使用cql:

select * from system.views_builds_in_progress

列出了所有视图,但是代号和last_token在最近24小时内没有改变(对于 A ,generation_number实际上是null) .

1 回答

  • 2

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

    nodetool stop VIEW_BUILD
    

    或者你可以使用 org.apache.cassandra.db:type=CompactionManager mbean的 stopCompaction 操作直接命中JMX .

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

相关问题