Vitess 4.0 发布了。Vitess 是一个分布式 MySQL 工具集,它可以自动分片存储 MySQL 数据表,将单个 SQL 查询改写为分布式发送到多个 MySQL Server 上,支持行缓存(比 MySQL 本身缓存效率高)与复制容错等。
此版本主要新特性包括:
改进 SQL 查询支持
支持的 MySQL 语法的覆盖范围有了不小的进步,例如现在可以跨分片边界插入。
还支持更广泛的 SELECT 语句,包括对诸如 COUNT(DISTINCT …)
不同聚合查询的支持。也可以通过 ALTER VSCHEMA
SQL 修改 Vitess 本身。
现在也已经开始使用常见的应用和框架测试 Vitess,并向测试套件中添加故障。目的是使从单一的 MySQL 或 MariaDB 迁移到分片的 Vitess 成为可能,而应用对此有所感知。
改进可用性
Vitess 4.0 中有许多改进,可以使新用户更容易使用:
- 完善 Kubernetes 和 Vagrant 的本地开发入门教程。
- 入门所需的配置较少,因为在许多情况下可以自动检测到 MySQL 版本。
- 改进了许多错误消息,并着重于确保它们处于正确的日志级别(error、warning 或 info)。
VReplication 的实验性支持
分片的缺点之一是可能不得不做出权衡取舍,例如,在具有买家和卖家的电子商务平台中,可以选择按买家分片,在这种情况下,卖家在分片系统中的查询可能会变慢。对于需要买卖双方都有效查询的应用,VReplication 提供了一种方式来订阅对每个分片进行的更改(使用 MySQL 二进制日志),并保留关键数据的冗余副本在其它分片上的可用性。可以认为此功能类似于其它商业数据库中可用的实例化视图。
此外 Vitess 4.0 还支持表等效的概念,这意味着可以指示 Vitess 从原始表或 VReplication 实例化视图中进行读取,无论哪种查询都能更快地执行。
详情查看更新说明:
https://vitess.io/blog/2019-11-05-vitess-4.0-has-been-released