gpt4 book ai didi

Cassandra - 选择而不复制

转载 作者:行者123 更新时间:2023-12-04 23:20:57 24 4
gpt4 key购买 nike

假设我已经创建了一个键空间和表:

CREATE KEYSPACE IF NOT EXISTS keyspace_rep_0
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 0};

CREATE TABLE IF NOT EXISTS some_table (
some_key ascii,
some_data ascii,
PRIMARY KEY (some_key)
);

我不想要这些数据的任何副本。我可以插入具有一致性级别的表 ANY .但我无法从该表中选择任何数据。

使用一致性级别查询时出现以下错误 ANYONE , 分别:
message="ANY ConsistencyLevel is only supported for writes"

message="Cannot achieve consistency level ONE"
info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 1}

我尝试过其他读取一致性级别,但没有一个对我有用。

这与选择 'replication_factor': 1 非常相似。并关闭一个节点。我再次无法选择任何数据。所有读取一致性级别都需要至少有一个副本才能启动。这是 Cassandra 的工作方式吗?没有复制就不能选择数据?我错过了什么?

最佳答案

数据的每个副本,包括原始数据,都是 复制品。复制因子不是附加副本的数量,而是副本总数。您需要 RF >= 1。

我很惊讶它允许 RF == 0。没有可用的副本,没有什么可阅读的。然而,评论 CASSANDRA-4486表示这是有意允许的,但出于特殊目的:

. . . the point is that it's legitimate to set up a zero-replication keyspace (this is common when adding a new datacenter) and change it later. In the meantime, it's correct to reject writes to it.



并且写入不会导致错误,这可能是由于 descriptions for consistency levels 中提到的暗示切换所致。 , 为 ANY :

A write must be written to at least one node. If all replica nodes for the given partition key are down, the write can still succeed after a hinted handoff has been written. If all replica nodes are down at write time, an ANY write is not readable until the replica nodes for that partition have recovered.



因此,如果您想确认您的写入至少被持久化到一个节点,并且不依赖于暗示的切换(可能会过期),那么请使用一致性级别 ONE 进行写入。而不是 ANY .

关于Cassandra - 选择而不复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com