Qdrant 1.18.3发布:分片键重分片查询错误修复,哪些集群应该升级?
文章摘要
Qdrant 1.18.3于2026年7月17日发布,本次版本只包含一项Bug修复:解决使用Shard Key进行重分片时可能出现的查询错误。更新内容虽然很少,但它影响的是多租户、大规模Collection和在线扩缩容场景。本文解释Shard Key与Resharding的关系、故障可能出现在哪些阶段、升级前如何复现和验证,以及为什么小版本修复也需要按生产级流程灰度发布。
一、这次版本修复了什么
Qdrant 1.18.3的Change Log非常短:
Fix query errors when using shard keys while resharding
也就是:
使用Shard Key
+集群正在Resharding
→ 某些查询可能报错
这不是新功能版本,也没有大规模API调整。
但如果系统满足以下条件,需要重点关注:
- 分布式Qdrant集群;
- Collection使用Shard Key;
- 正在或计划在线重分片;
- 多租户RAG;
- 高并发查询;
- 不能接受扩容期间查询失败。
二、Shard Key是什么
默认情况下,Qdrant根据Point ID将数据分布到不同Shard。
Shard Key允许业务显式控制数据分组。
例如多租户系统:
tenant_a
→ 指定Shard Key
tenant_b
→ 另一个Shard Key
好处:
- 按租户路由;
- 降低跨Shard查询;
- 便于租户隔离;
- 可以迁移特定数据组;
- 大租户可独立扩容。
Payload示意:
{
"tenant_id": "T001",
"document_id": "DOC-1001"
}
写入时指定:
shard_key = T001
三、Resharding为什么复杂
当数据量和流量增长时,原来的Shard数量可能不足。
Resharding需要:
创建新Shard布局
→ 搬迁数据
→ 同步增量写入
→ 更新路由
→ 切换查询
→ 清理旧布局
在迁移期间:
- 部分Point可能仍在旧Shard;
- 部分已经迁移到新Shard;
- 新写入需要正确路由;
- 查询需要同时理解迁移状态;
- Shard Key需要映射到正确分片。
任何路由状态不一致,都可能产生:
- 查询报错;
- 结果缺失;
- 重复结果;
- 延迟升高;
- 部分租户不可用。
四、哪些RAG项目受影响最大
1. 多租户知识库
每个租户使用独立Shard Key。
扩容时如果查询路由异常,可能只有部分租户失败,导致问题不容易被整体监控发现。
2. 超大Collection
通过Shard Key把:
业务线
地区
客户
时间分区
分组管理。
3. 在线扩容
要求Resharding期间继续提供查询服务。
4. 高频Metadata过滤
查询既指定Shard Key,又使用复杂过滤和混合检索,故障链路更长。
五、哪些项目可以暂缓
如果项目是:
- 单节点;
- 不使用Shard Key;
- 没有执行Resharding;
- 开发或测试环境;
- Collection规模较小;
这项修复的直接影响较低。
但仍应结合1.18.2和1.18.x的其他安全、稳定性修复评估是否升级。
六、如何确认自己是否使用Shard Key
检查:
- Collection创建和更新脚本;
- SDK写入参数;
- Shard Key管理API;
- 多租户路由代码;
- 集群运维文档;
- Metrics和Telemetry。
不要只看Payload中有没有tenant_id。
Payload过滤
≠ Shard Key路由
只有显式使用Shard Key API或写入参数,才属于本次问题范围。
七、升级前建立专项测试
测试一:迁移前基线
记录:
查询成功率
Recall结果数
P95延迟
Shard分布
租户数据量
测试二:Resharding期间持续查询
运行:
写入
查询
删除
过滤
混合检索
并覆盖全部Shard Key。
测试三:大租户与小租户
避免只测试一个默认租户。
测试四:迁移后数量一致性
检查:
每个Shard Key的Point总数
删除标记
Payload索引
检索结果
测试五:故障恢复
在Resharding中模拟:
- 节点重启;
- 网络抖动;
- 副本切换;
- 请求超时;
- 写入积压。
八、客户端不要无限重试
如果Resharding期间查询报错,客户端可能使用重试。
必须设置:
最大重试次数
指数退避
总超时
幂等判断
熔断
查询可以有限重试,但不能:
while true
否则集群处于迁移压力时,会收到更多请求,形成重试风暴。
九、监控应该按Shard Key拆分
整体成功率99.9%,不代表所有租户都正常。
如果一个小租户持续失败,整体指标可能看不出来。
建议记录:
query_success_rate_by_shard_key
query_error_count_by_shard_key
p95_latency_by_shard_key
result_count_anomaly
resharding_progress
shard_transfer_status
replica_state
高基数标签可能增加监控成本,可以只对重点租户和异常Shard Key展开。
十、推荐升级流程
1. 备份配置和Collection信息
2. 在预生产复现Shard Key场景
3. 升级一个非关键节点或测试集群
4. 启动Resharding专项压测
5. 验证查询结果和数量
6. 灰度升级生产节点
7. 观察错误率、延迟与迁移状态
8. 完成全部节点版本一致
不要在:
大促
批量入库
模型重建
高峰流量
期间同时执行版本升级和Resharding。
十一、版本升级后的验证清单
□ 所有节点版本一致
□ 集群状态正常
□ Collection绿色
□ Replica状态正确
□ Shard Key查询成功
□ Metadata过滤正确
□ 混合检索结果一致
□ Resharding能够完成
□ 迁移中无异常查询错误
□ Point数量无明显偏差
□ 延迟没有持续升高
十二、为什么只有一项修复也值得关注
基础设施版本价值不能只按功能数量判断。
一个修复如果影响:
查询正确性
在线扩容
多租户隔离
其业务价值可能比新增多个Demo功能更高。
对于企业RAG,向量库最重要的不是“支持多少新算法”,而是:
- 查询不能错;
- 扩容不能中断;
- 数据不能跨租户;
- 失败能够恢复;
- 状态能够观测。
总结
Qdrant 1.18.3针对的是一个非常具体的生产问题:
Shard Key
+Resharding
+查询
使用这三个能力的集群,建议完成预生产专项验证后升级。未使用Shard Key或Resharding的项目,直接影响较低,但仍应维护清晰的版本基线和升级节奏。
延伸阅读
想持续跟踪大模型、RAG、Agent、MCP 与开发者生态的最新变化,欢迎访问 智元界:
https://www.zyentor.com/
智元界将持续分享 AI 热点解读、技术实战、工具推荐与企业落地案例。