Can';不要在cassandra上创建索引

Can';不要在cassandra上创建索引,cassandra,Cassandra,我正在尝试使用在chat.user\u对话(键(对话))上创建“对话”键索引,但我遇到了错误 ServerError:java.lang.RuntimeException:java.util.concurrent.ExecutionException:org.apache.cassandra.exceptions.ConfigurationException:Column family ID不匹配(发现6de73fd0-c3ec-11e8-b098-f58bd8d3766a;预期为6c97192

我正在尝试使用
在chat.user\u对话(键(对话))
上创建“对话”键索引,但我遇到了错误
ServerError:java.lang.RuntimeException:java.util.concurrent.ExecutionException:org.apache.cassandra.exceptions.ConfigurationException:Column family ID不匹配(发现6de73fd0-c3ec-11e8-b098-f58bd8d3766a;预期为6c971920-c3ec-11e8-b098-f58bd8d3766a)

我尝试使用
nodetool flush
命令刷新表,并重新创建了表,但结果没有改变。 这是我的桌子:

CREATE TABLE chat.user_conversation (
    username text,
    created_at timestamp,
    conversations map<text, uuid>,
    last_activity timestamp,
    PRIMARY KEY (username, created_at)
) WITH CLUSTERING ORDER BY (created_at DESC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';
CREATE TABLE chat.user\u对话(
用户名文本,
在时间戳处创建了_,
对话地图,
上次活动时间戳,
主键(用户名,创建时间)
)使用群集顺序(在DESC处创建)
布卢姆过滤器概率=0.01
和缓存={'keys':'ALL','rows\u per\u partition':'NONE'}
和注释=“”
和compression={'class':'org.apache.cassandra.db.compression.SizeTieredCompactionStrategy','max_threshold':'32','min_threshold':'4'}
压缩={'chunk_length_in_kb':'64','class':'org.apache.cassandra.io.compress.LZ4Compressor'}
和crc检查机会=1.0
和dclocal\u read\u repair\u chance=0.1
并且默认的\u time\u to\u live=0
gc_grace_秒=864000
最大指数间隔=2048
和memtable_flush_period_in_ms=0
最小索引间隔=128
并读取_repair_chance=0.0
推测性_重试='99百分位';
我还尝试为其他字段创建,但遇到了相同的错误


使用Cassandra 3.11.3

此错误意味着您以某种方式使用两个不同的ID创建了同一张表-可能是因为您通过编程创建了该表,而他们进行了竞争。这是一个已知的限制,目前正在解决,但简短的版本是,如果有可能,您不应该通过编程创建表(不要让两个应用程序服务器同时创建)


这里的恢复通常是困难的。如果它是一个新表,您可能只想删除它,然后再试一次(无论如何,您很有可能很难阅读它)。如果它有您关心的数据,那么您需要获得所有的CFID匹配,这不是非常容易实现的,并且根据您的cassandra版本而有所不同(您可能需要重命名目录并手动修改模式表,这很微妙而且容易出错)。

对于未来的参与者,问题是使用不同版本的cassandra。我在同一台docker机器上试过Scyllab。Scyllab使用的是Cassandra v3.0.8,我在上面创建了相同的表。在同一个docker实例上安装Cassandra后,我遇到了这个错误。Scyllab和cassandra docker映像都使用相同的卷路径。

此错误通常意味着存在某些竞争条件。D除了你的shell,你还有其他应用程序连接到C*吗?@NestorSokil No.只有一个应用程序。这是开发阶段,所以我不关心数据。我放下桌子,一次又一次地尝试创造,但没有一次机会。我甚至放弃了键空间,重新创建了它。