Vitess v19 has been released. This latest version of the database management solution -- designed for the deployment, scaling, and administration of large clusters of open-source database instances -- provides several new features, including metrics for monitoring stream consolidations, improved query compatibility with MySQL for multi-table delete operations, support for incremental backups, and various performance enhancements.
Vitess, at present, provides support for MySQL and Percona Server for MySQL. In response to Oracle marking MySQL 5.7 as end-of-life in October 2023, Vitess is aligning with these updates by discontinuing support for MySQL 5.7 in this latest release. The maintainers' team has recommended users upgrade their systems to MySQL 8.0 while utilizing Vitess 18 before transitioning to Vitess 19. It is important to note that Vitess 19 will maintain compatibility for importing from MySQL 5.7.
The improved query compatibility with MySQL is facilitated through the SHOW VSCHEMA KEYSPACES
query, along with various other SQL syntax enhancements, including the ability to perform the AVG()
aggregation function on sharded keyspaces through a combination of SUM and COUNT. Furthermore, Vitess 19 broadens its support for Non-recursive Common Table Expressions (CTEs), enabling the creation of more complex queries.
To mitigate potential security vulnerabilities, communication between throttlers has been transitioned to use gRPC, discontinuing support for HTTP communication. Vitess has also introduced VSchema improvements by incorporating a --strict
sub-flag and a matching gRPC field within the ApplyVSchema command. This update guarantees using only recognized parameters in Vindexes, thus improving error detection and configuration verification.
Additionally, in a move to enhance security and ensure greater system stability, the ExecuteFetchAsDBA
command now rejects multi-statement inputs. Vitess plans to offer formal support for multi-statement operations in an upcoming version.
The Vitess migration cut-over process has been updated to incorporate a back-off strategy when encountering table locks. If the initial cut-over fails, subsequent attempts will occur at progressively longer intervals, minimizing strain on an already burdened production system.
Additionally, Online DDL now offers the option of a forced cut-over, which can be triggered either after a specified timeout or on demand. This approach gives precedence to completing the cut-over by ending queries and transactions that interfere with the cut-over process.
Regarding general features, Vitess is equipped with JDBC and Go database drivers that comply with a native query protocol. Furthermore, it supports the MySQL server protocol, ensuring compatibility with almost all other programming languages.
Numerous companies, including Slack and GitHub, have implemented Vitess to meet their production requirements. Additionally, Vitess has managed all database traffic for YouTube for more than five years.
The Vitess Maintainer Team discussed the release in a blog post, which was also shared on the CNCF website. The Vitess Maintainer Team has invited the tech community to join discussions on GitHub or Slack channel, where they can share stories, pose questions, and engage with the broader Vitess community.