【问题标题】:Stop Cassandra Materialized View Build停止 Cassandra 物化视图构建
【发布时间】:2017-03-26 00:14:13
【问题描述】:

有什么方法可以阻止在 Cassandra (3.7) 中构建物化视图?

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

nodetool.viewbuildstatus <keyspace>.<view>

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

select * from system.views_builds_in_progress

列出了所有视图,但 generation numberlast_token 在过去 24 小时内没有改变(generation_number 实际上对于 一个)。

【问题讨论】:

    标签: database cassandra


    【解决方案1】:

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

    nodetool stop VIEW_BUILD
    

    或者您可以直接使用org.apache.cassandra.db:type=CompactionManager mbean 的stopCompaction 操作来访问JMX。

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

    【讨论】:

    • 啊,这就是我要找的命令。谢谢!似乎构建视图正在引发异常Mutation xxx is too large for maximum size of 16.000MiB - 它会休眠五分钟以再次出错(不完全清楚为什么会引发异常)。将标记为已解决,尽管我的情况可能是独一无二的,因为该命令实际上并未停止构建 - 它在此错误循环中继续 ad naseam(仅删除视图停止了它)
    • 基表中是否有宽分区或大数据?可以尝试增加cassandra.yaml (support.datastax.com/hc/en-us/articles/…) 中的提交日志段和批处理日志限制。可能想在视图定义中仔细检查您的选择语句。
    • 似乎视图中的 select 语句导致了问题 - 如何,我仍然不知道,但是在进行了一些修改之后(例如删除了不必要的列而不是使用 select *)视图构建没有问题。再次感谢您的帮助!
    猜你喜欢
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 2018-04-13
    • 1970-01-01
    • 2023-03-26
    • 2018-07-04
    相关资源
    最近更新 更多