宣布 Vitess 11

2021-07-30 01:36:47

我代表 Vitess 维护者,很高兴地宣布 Vitess 11 正式发布。在此版本中,Vitess 维护者在多个领域取得了重大进展,包括基准测试、VTAdmin、模式跟踪、在线 DDL 和性能改进。虽然 Schema Tracking 是实验性的,但我们很高兴 Gen4 planner 也在不断发展。请花点时间查看发行说明。请仔细阅读它们并通过 GitHub 报告任何问题。到目前为止,某些查询要求 VTGate 单独提供权威的列信息,即使该信息已经存在于单个数据库级别。架构跟踪将数据库级别的架构更改传达给 VTGate,因此不再需要手动步骤来保持 VTGate 对底层架构的视图同步。这允许查询计划器计划更多查询并提高我们与 MySQL 的兼容性。启用功能 SHOW VITESS_MIGRATION '...' LOGS 的链接:Vitess 现在在迁移完成/失败后最多保留迁移日志 24 小时,并根据要求提供它们。弃用拓扑流:在线 DDL 现在直接用于平板电脑。我们正在弃用 topo 的参与。版本 v12 将完成弃用。命令 vtctl OnlineDDL revert ... 已弃用。相反,使用 vtctl ApplySchema -sql "REVERT VITESS_MIGRATION ..." 命令 vtctl VExec 已弃用。要查看在线 DDL 迁移状态,请使用 SHOW VITESS_MIGRATIONS LIKE '...'

要控制在线 DDL 迁移,请使用 ALTER VITESS_MIGRATION '...' CANCEL|RETRY 或 ALTER VITESS_MIGRATION CANCEL ALL 由于新升级的 GRPC,这个新版本的 Vitess 具有更短的请求延迟,并在大规模服务查询时显着降低了 CPU 和内存使用量和 ProtoBuf 依赖项。我们开发了一个自定义的 Protocol Buffers 编译器,使我们能够在不牺牲序列化速度的情况下从最新版本的 GRPC 中的性能改进中受益。 Vitess 10.0 引入了一个名为 VTAdmin 的实验性多集群管理 API 和 Web UI,它不断改进,重点是管理重新分片工作流。有关运行和配置 VTAdmin 的更多文档,请参阅自述文件、文档树和示例配置。部署 vtadmin-api 和 vtadmin-web 组件是完全可选的。如果您有兴趣尝试并提供早期反馈,请在 Vitess Slack 的 #feat-vtadmin 中找到我们。请注意,VTAdmin 依赖于新的 VtctldServer API,因此您必须在 vtctlds 上运行新的 grpc-vtctld 服务才能使用它。 v2 CLI 流现在是默认设置。在我们看到更广泛的使用之前,我们仍然将它们称为实验性的。 v1 工作流仍然可以通过将 -v1 参数传递给 MoveTables 和 Reshard 来运行。本地示例已更新为使用 v2 流程。作为上述性能优化和 VReplication 特定改进的一部分,CPU 利用率和内存占用都得到了改进。在过去的几个月里,几个大规模的 MoveTable、Resharding 和 VStream API 部署已经成功运行。一些边缘情况暴露了已修复的错误,并表明需要添加额外的指标或功能。

自上次发布以来,Vitess 的持续基准测试工具:arewefastyet 已完成其主要开发阶段,并已通过博客文章宣布。该帖子包含对 arewefastyet 的实现和 UI 的详细描述。我们现在可以在 Vitess arewefastyet 的网站上可视化 10.0.0 和 11.0.0 版本之间的性能改进。完整的比较可以在这里找到。