2.1.14中的Cassandra模式问题

时间:2018-09-06 15:40:52

标签: cassandra cassandra-python-driver

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

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

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

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

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

是否有任何调试此问题的指针?是由于Cassandra节点承受压力吗?

1 个答案:

答案 0 :(得分:2)

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

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