引言

Vitess 的维护团队非常高兴地宣布发布版本 22.0.0,以及 Vitess Kubernetes Operator 的 2.15.0 版本。这是 Vitess 首次基于新的发布节奏,经过 6 个月开发周期的版本发布。

22.0.0 版本带来了查询服务和集群管理方面的重要增强,使 Vitess 的性能和操作便捷性相比 21.0 版本更进一步提升。本文将重点介绍此次版本更新中的主要变化,详细的发布说明请参考完整内容


总览

  • 查询服务:支持预处理语句(Prepared Statements)及新增 VTGate 指标
  • 集群管理与 VTOrc:支持故障磁盘恢复、改进无效 GTID(Errant GTID)的发现机制以及 VTOrc 性能增强
  • Kubernetes Operator:支持自动备份、Kubernetes v1.32 版本以及改进示例
  • 性能优化:相比 v21.0.0 的显著改进

查询服务

Vitess 22.0 专注于查询服务的增强,重点包括:

  • 可观察性能力的提升;
  • 智能处理预处理语句,减少重复解析;
  • 支持分片视图 (sharded views) 和完整的原子分布式事务功能。

可观察性

Vitess 现在会为查询执行计划生成指标,帮助你分析执行模式并优化代价高昂的计划。请参阅查询服务指标指南

预处理语句

我们对 VTGate 的预处理管道进行了重大改造:

  • 预处理语句被以原始 SQL 缓存,跳过重复的解析过程;
  • 推迟的执行计划会使用实际绑定的参数值,以生成更优化、参数感知的查询计划。

视图和原子分布式事务

  • 分片视图支持现已 GA(正式上线)
  • 原子分布式事务功能已完整实现。详细信息请参阅分布式事务指南

集群管理与 VTOrc

Vitess 22.0 为 VTOrc 带来了性能和易用性的多项增强,包括:

  • 更高效、更少的拓扑服务调用,并优化整体资源消耗;
  • 新特性:支持通过 --keyspaces-to-watch 标志指定分片范围,简化大规模部署的配置。

新增功能包括:

  1. 故障磁盘恢复:VTOrc 现支持挂载受阻磁盘的恢复操作;
  2. 无效 GTID 改进:
    • 增强对无效 GTID 的发现和处理;
    • 阻止带有无效 GTID 的 vttablet 加入复制拓扑。

此外,我们新增了 半同步监控,用于检测和解除因网络问题导致的等待半同步 ACK 的 vttablet 受阻情况。


Kubernetes Operator

Vitess v22.0.0 搭配 Kubernetes Operator v2.15.0 版本发布,相关更新包括:

  • 使用与 Vitess 相同的发布周期;
  • 官方支持的 Kubernetes 版本已升级到 v1.32

备份改进

  • v2.13.0 的备份实现方式中,使用空 Pod 和 vtctldclient BackupShard 执行备份。这种设计更快但会移除一个服务 tablet 并影响可用性;
  • v2.15.0 改用 VTBackup Pod,符合生产部署的推荐配置,并减少服务影响。

示例改进

现在提供的示例展示了如何在两种不同的命名空间中运行 VitessOperator 和 VitessCluster。

详细信息请参阅Operator 发布说明


性能优化

此版本通过精准优化,降低了查询延迟,并减少了 Vitess 的内存分配:

  1. gRPC 编解码改进
    使用 gRPC Codec v2 和池化缓冲区,提升 QPS 约 3% 并减少单次请求分配约 13%。
  2. AST 遍历优化
    将 Normalizer 的两次 AST 遍历合并为一次,提升 VTGate 的 Normalizer 速度约 5%,减少每次操作分配约 5.5%。
  3. AST 重写优化
    合并 RewriteAST 和 Normalizer 为单次操作,减少 Planner 延迟约 2.7%,并降低分配约 4.3%。
  4. 避免单分片查询的多次排序
    VTGate 现在在仅涉及单分片的查询中跳过冗余排序操作,减少不必要的 CPU 开销。

迁移与进一步了解

为了方便从之前版本迁移到 v22.0.0,我们强烈推荐阅读 Vitess 和 Kubernetes Operator 的发布说明。同时,完整的变更日志也已提供。

此外,推荐参考 Vitess v22.0.0 的文档,其中包含分步用户指南、最佳实践以及运行 Vitess 的技巧。

Vitess 22.0 带来的性能提升和功能增强,让分布式数据库系统继续向高效和易用迈进,为开发者和 DBA 提供了强大的支持。



宣布 Vitess 22 发布插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://folen.top/2025/09/14/vitess-22/