Database 停止Cassandra物化视图构建
在Cassandra(3.7)中,是否有任何方法可以停止构建物化视图 背景:我创建了两个物化视图A和B(完全公开-我可能试图在构建完成之前删除它们),这些视图似乎一直被卡住……在同一张表上创建另一个视图C的任何尝试似乎都会失败。使用nodetoolDatabase 停止Cassandra物化视图构建,database,cassandra,Database,Cassandra,在Cassandra(3.7)中,是否有任何方法可以停止构建物化视图 背景:我创建了两个物化视图A和B(完全公开-我可能试图在构建完成之前删除它们),这些视图似乎一直被卡住……在同一张表上创建另一个视图C的任何尝试似乎都会失败。使用nodetool nodetool.viewbuildstatus <keyspace>.<view> 列出了所有视图,但在过去24小时内,生成号和最后一个\u标记没有更改(对于A,生成号实际上为空) 它没有文档记录,但是nodetool s
nodetool.viewbuildstatus <keyspace>.<view>
列出了所有视图,但在过去24小时内,生成号和最后一个\u标记没有更改(对于A,生成号实际上为空) 它没有文档记录,但是
nodetool stop
实际上采用任何压缩类型,而不仅仅是列出的压缩类型(视图构建就是其中之一)。因此,您可以简单地:
nodetool stop VIEW_BUILD
或者,您可以使用org.apache.cassandra.db:type=CompactionManager
mbean的stopCompression
操作直接点击JMX
真正要做的就是为视图生成器设置一个标志,使其在下一个循环中停止。如果它抛出了一个未捕获的异常或其他东西,因此它不再做任何事情(值得检查系统/输出日志),stop也不会做任何事情。在这种情况下,它并没有真正伤害到任何东西,所以可以忽略它并重试。最坏的情况是重新启动节点。Ahh,这就是我要找的命令。谢谢构建视图时似乎抛出了一个异常
对于16.000MiB的最大大小来说,xxx太大了
——它休眠了五分钟,只会再次出错(抛出该异常的原因并不完全清楚)。将标记为已解决,尽管我的情况可能是唯一的,因为命令实际上并没有停止构建-它在这个错误循环中继续运行(只是删除了停止它的视图)。基表中是否有宽分区或大数据?可以尝试在cassandra.yaml
()中增加提交日志段和批处理日志限制。可能需要仔细检查视图定义中的select语句。似乎视图中的select语句导致了问题-如何,我仍然不知道,但在进行了一些修改(例如删除了不必要的列,而不是使用select*
)后,视图生成时没有问题。再次感谢你的帮助!
nodetool stop VIEW_BUILD