当一个节点在RF = 1场景中失败时,选择所有记录是否在cassandra中工作?

时间:2015-04-29 06:49:51

标签: cassandra nosql

如果我有3个节点并且我有RF = 1且一个节点不可用。然后,如果我使用select * from tableselect * from table where secondary_index=x,它会失败还是返回部分数据?

1 个答案:

答案 0 :(得分:0)

您已将复制因子指定为1 ..如果要获取的分区属于已关闭的节点,我猜它会失败。

案例1:您正在为列族选择所有分区。如果所有分区都分布在两个可用节点上,那么您的读取是安全的。如果在不可用节点中存在任何一个行分区,则必然会出现异常。

案例2:同意二级索引是本地的,但为了应用没有任何分区键的二级索引,协调器必须绕过所有节点的本地索引才能找到它(如果没错的话)。因此,这实际上最终会出现一个确定的镜头异常,因为cassandra可能会认为向下节点中的分区可能包含随附的二级索引值。

我的建议:如果要进行生产设置,请不要使用此复制因子或查询模式!!