自v2.0.2以来,Cassandra具有详细描述here中名为Rapid Read Protection
的机制。对于这个问题,博客文章的重要说明是:
speculative_retry
设置控制的机制但cassandra java-driver的文档描述了一些非常相似的here,其名称也类似于speculative query execution
。但是驱动程序需要一些额外的库才能使用此功能。
Q1:我是对的,这意味着它是在驱动程序端实现的,与cassandra中实现的快速读取保护无关? 如果是这样,这意味着如果满足驱动程序重试条件,驱动程序将使用其他协调器重试查询。
Q2:对于读取查询,在协调器端重试似乎更有效,因为即使你切换协调器进行查询,它仍然有可能另一个查询同一组节点(并且将具有与之前相同的响应时间)。但是我没有找到如何仅为写入查询启用驱动程序端重试。所以,如果我想对所有类型的查询使用重试 - 我应该在cassandra-server端禁用RR,因为双重保护会给集群带来更大的压力吗?或者我可以通过启用它们来获得一些利润?答案 0 :(得分:1)
Q1:是的,驱动程序中的推测性查询执行完全独立于群集快速读取。
Q2.1:对于第一部分,由于协调员可能忙于处理其他请求等,因此并非绝对必要。
Q2.2:我认为您可以启用这两种机制(群集和客户端)并对其配置进行一些操作。