Cassandra写关于一致性级别的表现

时间:2014-02-14 16:06:06

标签: nosql cassandra

以下是关于写入(LINK

的cassandra文档的引用
  

如果受影响的行键的所有副本都已关闭,则它仍然是   如果使用写入一致性级别,写入可能成功   任何。在这种情况下,提示和写入的数据存储在   协调器节点,但在提示之前将无法读取   被写入拥有该行的实际副本。任何   一致性级别以成本提供绝对写入可用性   一致性,因为无法保证何时写入数据   可读取(取决于副本的关闭时间)。 是   任何一致性级别也可能会增加负载   集群,因为协调节点必须临时存储额外的行   只要副本不可用于接受写入。

我的问题是:如果我们使用 ANY 的一致性级别而不是使用 ONE 的一致性级别时的写入,那么写入cassandra的速度会慢吗?

1 个答案:

答案 0 :(得分:2)

在写入时无法访问适当的副本节点时会生成提示。然后在请求协调器节点上本地序列化写请求。一旦有效的副本节点可用并且协调器节点获知它,该请求就会传递给新的可用副本。

在此背景下,有两种写时间方案需要考虑:

1)受影响的行至少有一个副本。在这种情况下,ANYONE的一致性级别之间没有差异。写入只是转到副本,并且不会触发提示切换。 没有性能差异

2)受影响的行的所有副本都已关闭。这是提示进入图片的地方。使用一致性ANY,在请求时在协调器节点上还有额外的工作要做,因为提示被写入本地系统表以供以后重放。使用一致性ONE,您只需在相同的情况下获得拒绝写入。 ONE会向客户端公开写入失败,并且会比ANY 更快。

基本上,权衡是拒绝请求而不是将工作推送到剩余节点,但仅在负责存储该行的节点停止时