Cassandra:理解复制因子

Cassandra:理解复制因子

假设情况:

  1. 设置一个具有 N 个节点的 cassandra 集群。
  2. 创建一个键空间并设置replication_factor为 1 并使用SimpleStrategy
  3. 添加一些数据。
  4. 移除 1 个节点。

这是否意味着现在有 1/N 的数据丢失?

答案1

对于读取请求,是的,这就是它的意思。对于 Cassandra,您通常不希望复制因子为 1(除非您有一个节点)。

更高的复制因子会给你更好的弹性,但决定行可用性的主要参数实际上是一致性级别(特定于查询)。

对于写入请求,即使缺少该行选定的目标,ANY 一致性级别也会使集群成为一种请求(因为它会尝试使用提示的切换稍后提交写入)。

答案2

您没有告诉我们如何删除节点,如果您使用 nodetool 命令,则节点上的数据将在删除之前发送到其他节点。因此您将保留您的数据。

http://wiki.apache.org/cassandra/Operations#Removing_nodes_entirely

如果你的节点崩溃:

  • 对于读取请求,您的数据将丢失
  • 对于写请求:

相关内容