一致性级别与 Cassandra 原生二级索引有何关系?

How does consistency level relate to Cassandra native secondary index?

一致性级别与二级索引有何关系?如果例如在无限制的二级索引查询中使用 QUORUM 进行查询? Cassandra内部:首先查询所有节点本地索引,然后使用本地索引查询的结果(分区),使用QUORUM获取索引分区数据?

这就是为什么以下陈述是正确的?:

问:“使用二级索引时,一致性级别的选择如何影响集群可用性?”

A: "因为二级索引是分布式的,所以集群中必须有可用于 ALL 令牌范围的 CL 节点,以便完成一个查询。例如,RF = 3,当环中三个连续节点中的两个不可用时,所有在 CL = QUORUM 的二级索引查询将失败,但是在 CL = ONE 的二级索引查询将成功。这是真的无论集群大小如何。"

您指定的一致性级别决定了必须有多少副本才能使读取请求成功。

当执行需要二级索引的查询时,这不仅适用于节点法定人数,而且这次适用于所有令牌范围的法定人数。

比如有6个节点A到F的集群,如果节点A拥有50到100的token范围,节点B和C是环右边的相邻节点,那么对于一致性读查询of QUORUM 节点 A/B/C 中的 2 个必须可用于标记范围 50-100 的索引查找。对于 DC/ring.

中的所有其他标记范围重复此要求

由于这个原因,辅助索引查找非常昂贵,因此我们建议您避免使用它们并在性能对您很重要的情况下尽可能进行非规范化。干杯!