如果我有3个节点并且我有RF = 1且一个节点不可用。然后,如果我使用select * from table
或select * from table where secondary_index=x
,它会失败还是返回部分数据?
答案 0 :(得分:0)
您已将复制因子指定为1 ..如果要获取的分区属于已关闭的节点,我猜它会失败。
案例1:您正在为列族选择所有分区。如果所有分区都分布在两个可用节点上,那么您的读取是安全的。如果在不可用节点中存在任何一个行分区,则必然会出现异常。
案例2:同意二级索引是本地的,但为了应用没有任何分区键的二级索引,协调器必须绕过所有节点的本地索引才能找到它(如果没错的话)。因此,这实际上最终会出现一个确定的镜头异常,因为cassandra可能会认为向下节点中的分区可能包含随附的二级索引值。
我的建议:如果要进行生产设置,请不要使用此复制因子或查询模式!!