Announcing Vitess 9.0
By Alkin Tezuysal |
On behalf of the Vitess maintainers, I am pleased to announce the general availability of Vitess 9.
Major Themes
In this release, we have focused on making Vitess more stable after the successful release of Version 8. There have been no major issues reported, so no patches were released for Version 8. This has allowed us to push further on compatibility and adoption of common frameworks as priorities. We have compiled all improvements into the Release Notes. Please read them carefully and report any issues via GitHub. We would like to highlight the following themes for this release:
Compatibility (MySQL, frameworks)
Our ongoing work ensures that Vitess accepts all queries that MySQL does. We continuously focus on SET and information_schema queries in this release, as well as other common and complex queries. Several parts of the query serving module have been refactored to facilitate further compatibility enhancements.
Please note that reserved connections are still not enabled by default. You should plan to test them first in a test environment to ensure all your queries and frameworks are supported before enabling them in production.
Migration
Enhanced logging and metrics have been added to VReplication to help debug stalled and failing VReplication workflows and to provide increased visibility into other operational and performance-related issues.
VReplication support for JSON columns, which was previously incomplete, has been refactored and is now functionally complete.
A new version (v2) of the VReplication workflow CLI commands has been introduced. These commands incorporate functional and UX improvements based on user experience and feedback. They are deemed experimental (but fully functional), and we welcome feedback and suggestions on improving them further.
Innovation
There has been a significant push towards streamlining Online Schema Changes.
- Changed syntax: The syntax for online DDL has been changed and finalized. We introduce the @@ddl_strategy session variable, or the -ddl_strategy command line flag to determine whether migration is executed normally (direct) or online (gh-ost or pt-osc). Furthermore, migrations now use the standard ALTER TABLE syntax.
- Better auditing: A migration is now associated with a context as well as the identity of the issuing vttablet.
- Better managed: It's possible to list migrations by context and to cancel all pending migrations. Vitess will automatically retry migrations that fail due to a failover.
- More statements: Online DDL now also works for CREATE and DROP statements. This allows us to group together migrations with the same context.
- Safe, lazy, and managed DROPs: Online DDL DROP statements are converted to RENAME statements, which send the tables to the lifecycle mechanism: tables are held for safekeeping for a period of time, then slowly and safely purged and dropped, without risking database lockdown. A multi-table DROP statement is exploded into distinct single-table operations.
As always, please validate any new features in your test environments before using them in production.
Documentation
Two new user guides have been created for new adopters of Vitess:
There is a shortlist of incompatible changes in this release. We encourage you to spend a moment reading the release notes to see if any of these will affect you.
Please download Vitess 9 and try it out!