【问题标题】:Cassandra schema issue in 2.1.142.1.14 中的 Cassandra 架构问题
【发布时间】:2019-02-11 22:26:54
【问题描述】:

我们在更改表格时遇到了一个奇怪的问题。我们使用 Cassandra python 驱动程序 sync_table() 方法从我们的模型(在 py 文件中定义)同步到 Cassandra。集群是一个 20 个节点,压力很大(所有节点的最大使用率在 50-70% 范围内)。

当使用 Cassandra python 驱动程序同步模式时,它在内部执行“ALTER TABLE ADD”命令。在一个特定的表中,当我们添加七个新列时,我们注意到了这种奇怪的行为

  • DESCRIBE TABLE 命令显示新创建的 7 列中的 3 或 4 列。有一次,它在 DESCRIBE TABLE 输出中显示了所有 7 列。

    • 但在 select * 输出中,未显示新列。

行为不一致。我们手动删除了列,然后重新同步了架构。每次出现问题时,选择命令都不会显示 7 列中的几列。

任何调试此问题的指针?是因为 Cassandra 节点上的压力吗?

【问题讨论】:

    标签: cassandra cassandra-python-driver


    【解决方案1】:

    最可能的问题是您遇到了架构协议问题,因为执行了许多架构更改命令。

    通常,您只需将架构更改命令发送到一台主机,并获得架构协议的确认。第一件事通常是通过创建一个使用白名单策略的会话来完成,其中列表仅包含一个节点(与令牌感知或循环策略相反)。第二件事很简单——你要么检查执行命令后返回的结果集的相应标志,要么检查集群元数据的相应字段/方法。

    【讨论】:

    • 谢谢@alex。这解释了这个问题。我会努力回来的。
    • 这确实是问题所在。我只使用了 WhitelistRoundRobinPolicy 和集群中的第一个 cassandra 节点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2011-06-06
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2021-02-23
    • 2018-07-28
    相关资源
    最近更新 更多