database - 停止 Cassandra 物化 View 构建

标签 database cassandra

有什么方法可以阻止 Cassandra (3.7) 中物化 View 的构建吗?

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

nodetool.viewbuildstatus <keyspace>.<view>

对于AB显示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/

相关文章:

sql - 插入命令::错误:列 "value"不存在

php - 数据库架构——一大或多小

macos - 如何在 mac os x 中安装/下载特定版本的 cassandra 分布式数据库?

java - Lagom Cassandra 驱动程序

database - DynamoDB 全局表复制延迟

sql-server - 什么 SQL Server 登录用于 SQL Server 身份验证?

docker - 将本地 CQL 命令文件传递给 Cassandra Docker 容器

java - 分别运行Lagom Service Locator/Kafka/Cas​​sandra

java.sql.SQLNonTransientConnectionException : org. apache.thrift.transport.TTransportException : Frame size larger than max length (16384000)!

c# - 比较不同列的值后返回字段的 ID