You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scylla如何为Token/表范围扫描读查询实现一致性级别?

Scylla中Token范围/表扫描查询的一致性级别实现机制

在Scylla里,处理Token范围查询(比如SELECT * FROM table WHERE token(key) >= start AND token(key) <= end)或全表扫描时,一致性级别(CL)是针对每个分区单独生效的,而非对整个Token范围一次性处理。

具体逻辑如下:

  • 执行范围查询时,Scylla会先将目标Token范围拆解为单个分区的集合,随后逐个处理每个分区的读取请求。
  • 对每个分区,都会严格遵循你指定的一致性级别要求:向该分区的副本集发起读取请求,直到收集到满足CL要求的有效响应数量后,才会将该分区的数据纳入结果集。
  • 举个实际例子:如果设置的一致性级别是QUORUM,那么针对每个分区,Scylla都会确保从该分区的副本中收集到超过半数的有效响应,才会返回这个分区的数据。
  • 这种设计的核心原因在于,每个分区的副本分布、数据一致性状态都是独立的,针对单个分区应用CL能确保查询结果中每个分区的数据都符合你要求的一致性标准。

需要补充的是:和单分区读取逻辑一致,如果某个分区的读取无法满足指定CL(比如副本不可用),Scylla会按照配置的重试策略进行重试;若最终仍无法满足要求,查询会直接抛出错误,不会跳过该分区返回部分结果(除非你额外配置了允许不一致读取的参数)。

内容的提问来源于stack exchange,提问作者Rado Buransky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:42:33