2.1.14 中的 Cassandra 模式问题



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

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

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

    • 但在选择 * 输出中,不会显示新列。

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

调试此问题的任何指示?是由于Cassandra节点的压力吗?

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

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

最新更新