在多节点拓扑中更改 cassandra 中的列族

Altering a column family in cassandra in a multiple node topology

我在尝试更改 cassandra 时遇到以下问题: 我正在直接改变 table:

ALTER TABLE posts ADD is_black BOOLEAN;

在单节点环境中,在 EC2 服务器和本地主机上一切正常 - select、删除等。

当我在具有 3 个节点的集群上进行更改时 - 东西变得越来越多。 当我执行

select().all().from(tableName).where..

我遇到以下异常:

java.lang.IllegalArgumentException: is_black is not a column defined in this metadata

    at com.datastax.driver.core.ColumnDefinitions.getAllIdx(ColumnDefinitions.java:273)

    at com.datastax.driver.core.ColumnDefinitions.getFirstIdx(ColumnDefinitions.java:279)

    at com.datastax.driver.core.ArrayBackedRow.getIndexOf(ArrayBackedRow.java:69)

    at com.datastax.driver.core.AbstractGettableData.getString(AbstractGettableData.java:137)

显然我不是唯一有这种行为的人: reference

p.s - 放弃创建密钥空间对我来说是不可能的,因为我无法删除 table 中包含的数据。

错误已解决:-)

我的问题是 DataStax 在包含每个节点配置的内存缓存中维护,当我更改 table 时此缓存未更新,因为我使用的是 cqlsh 而不是他们的 SDK。

重新启动所有节点后,内存缓存被删除,bug 已解决。