如何使用Cassandra复制因子1管理节点故障?

问题描述 投票:1回答:1

我有一个三节点Cassandra(DSE)集群,我不关心数据丢失,因此我将RF设置为1.我想知道如果节点出现故障,Cassandra将如何响应读/写请求(我有CL =现在我的请求中的所有内容)。

理想情况下,如果数据存在,我希望这些请求成功 - 只是在剩余的可用节点上,直到我替换死节点。这个密钥空间本质上是一个非常大的缓存;如果发生丢失,我可以替换任何数据。

cassandra datastax datastax-enterprise scylla
1个回答
5
投票

(免责声明:我是ScyllaDB员工)

假设您的分区键足够独特,当使用RF = 1时,您的3个节点中的每一个都包含1/3的数据。顺便说一句,在这种情况下,CL = ONE / ALL基本上是相同的,因为您的数据只有1个副本,没有高可用性(HA)。

来自2个节点的“现有”数据请求将成功。尽管如此,当3个节点中的一个节点关闭时,1/3的客户端请求(对于现有数据)将不会成功,因为基本上1/3的数据不可用,直到down节点出现(请注意nodetool repair当使用RF = 1)时无关紧要,所以我想从快照恢复(如果你有一个可用)是唯一的选择。

当节点关闭时,一旦执行nodetool decommission,令牌范围将在2个节点之间重新分配,但这仅适用于新的写入和读取。

你可以在这里阅读更多关于戒指架构的信息:http://docs.scylladb.com/architecture/ringarchitecture/

© www.soinside.com 2019 - 2024. All rights reserved.