有什么方法可以阻止 Cassandra (3.7) 中物化 View 的构建吗?
背景:我创建了两个物化 View A 和 B (完全公开 - 我可能试图在构建完成之前删除它们),这些 View 似乎是永远卡住...任何在同一张 table 上创建另一个 View C的尝试似乎都挂起。使用节点工具
nodetool.viewbuildstatus <keyspace>.<view>
对于A和B显示STARTED和UNKNOWN的组合,对于C中的 View 显示STARTED。使用 cql:
select * from system.views_builds_in_progress
列出了所有 View ,但世代编号和last_token在过去24小时内没有更改(世代编号对于实际上为空>A)。
最佳答案
它没有记录,但是 nodetool stop
实际上采用任何压缩类型,而不仅仅是列出的类型( View 构建是其中之一)。所以你可以简单地:
nodetool stop VIEW_BUILD
或者您可以使用 org.apache.cassandra.db:type=CompactionManager
mbean 的 stopCompaction
操作直接访问 JMX。
真正要做的就是为 View 构建器设置一个标志以在下一个循环中停止。如果它抛出一个未捕获的异常或其他东西,那么它不再做任何事情(值得检查系统/输出日志),停止也不会做任何事情。在这种情况下,它并没有真正伤害任何东西,所以可以忽略它并重试。最坏的情况是重启节点。
关于database - 停止 Cassandra 物化 View 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40553499/