https://planetscale.com/blog/announcing-vitess-18 Skip to content * Products * Solutions * Resources * DocumentationDocs * Pricing * Products * Solutions * Resources * Documentation * Pricing * Contact * Sign inGet started BlogOpen source Follow us Announcing Vitess 18 Vitess 18 is now generally available, with a number of new enhancements designed to improve usability, performance, and MySQL compatibility. Announcing Vitess 18 Table of contents[Foreign key constraints ] MySQL compatibility improvements Vitess 18 is now generally available, with a number of new enhancements designed to improve usability, performance, and MySQL compatibility. Foreign key constraints In the past, foreign keys constraints had to be managed outside Vitess. This was a significant blocker for adoption. We are now able to support Vitess-managed foreign key constraints within the same shard. This includes the ability to import data into Vitess from an existing MySQL database with foreign key constraints. We plan to extend foreign key constraint support to cross-shard relationships in a future release. Note PlanetScale support for foreign key constraints will be available December 2023. General compatibility The Vitess query planner has been significantly enhanced, paving the way for advanced query capabilities. The newly revamped version is more robust and flexible. This allows Vitess to provide better support for complex aggregations, sophisticated subqueries, and derived tables. Complex queries on sharded databases will perform better as a result of these changes. Usability enhancements Cobra The Vitess CLI has been migrated to cobra. In addition to standardizing and modernizing our CLI infrastructure, this change provides two major benefits. We now auto-generate reference documentation for both released and development versions of Vitess. This means that developers spend less time performing mechanical documentation changes and more time on features, bug fixes, and more in-depth documentation, and end users get more reliably up-to-date reference docs. In addition, Vitess commands now support shell completion: Vitess commands support shell completion Vtctldclient We have completed the migration of all client commands to vtctldclient. The legacy vtctl/vtctlclient binaries are now fully deprecated and we plan to remove them in Vitess 19. This migration provides several benefits: * Clean separation of commands makes it easier to develop new features without impacting other commands. * It presents an API that other clients (both Vitess and third-party) can use to interface with Vitess. * It enables future features. For example, we can now use configuration files and start building support for dynamic configuration. VReplication and online DDL We now have the ability to import data with foreign key relationships, in such a way that we properly maintain those relationships. Also, we now support near-zero downtime migration of data from an external database. Previously, there was a perceptible cutover duration during which queries would error out. Online DDL can now provide better progress estimates. Point in time recoveries While Vitess has supported Point in Time Recovery for years, the functionality was dependent on running a binlog server and was not widely used. In this release, we add the ability to restore to a specific timestamp without relying on an external binlog server. Recovery to a known GTID position without a binlog server has been supported since Vitess 17. The old functionality that relied on a binlog server is now deprecated and will be removed in a future release. Tablet throttler The throttler now uses gRPC for communication with other tablets instead of http except as a fallback during version upgrades. The use of http was a security concern and it will be removed in the next release. Arewefastyet Arewefastyet, our benchmarking system, now has a new look aimed at improving the reliability and usability of the website. We have also made several bug fixes and enhancements to the benchmarking system. Try it out We are very pleased with the great strides we have made with v18 and hope that you will be as well. We encourage all current users of Vitess and everyone who has been considering it to try this new release! We also look forward to your feedback, which can be provided via Vitess GitHub issues or the Vitess Slack. Share Next post Announcing the Fivetran integration Written by Vitess Engineering Team Vitess Engineering Team Last updated November 7, 2023 Table of contents * Foreign key constraints * General compatibility * Cobra * Vtctldclient * VReplication and online DDL * Point in time recoveries * Tablet throttler * Arewefastyet * Try it out Related posts [image] Open source Announcing Vitess 17 [image] Open source Optimizing query planning in Vitess: a step-by-step approach [image] Open source Announcing Vitess 16 Upgrade your Enterprise The more reliable way to scale your business. Contact us Company * About * Blog * Changelog * Careers Product * Case studies * Enterprise * Pricing * AI/ML Open Source * Vitess * Vitess community * GitHub Resources * Docs * Learn * Resource Hub * Support * Status Talk to us * Call +1 408 214 1997 * Contact us (c) 2023 PlanetScale, Inc. All rights reserved. PrivacyTermsCookiesDo Not Share My Personal Information