All Versions
9
Latest Version
Avg Release Cycle
53 days
Latest Release
65 days ago

Changelog History

  • v5.20

    February 04, 2020

    Incompatible Changes

    πŸš€ This release includes the following changes, which may result in incompatibilities when upgrading from a previous release:

    πŸ—„ Deprecated Support for Vagrant
    πŸ‘Œ Support for deployment on Vagrant is deprecated, and will be removed in the next release of Vitess. The recommended upgrade path is local deployment on macOS.

    πŸ—„ Deprecation of vtgate option disable_local_gateway
    The option disable_local_gateway is parsed but ignored by vtgate. It is now deprecated, and will be removed in a future version #5741

    🌐 Web_dir2 and web_dir options for vtctld
    🌐 The options web_dir2 and web_dir are now parsed but ignored. This is a behavior change from 5.0 beta, where the options were removed. We intend to remove these options again in Vitess 6.0, but discovered compatibility issues with existing tooling. #5744 #5747

    πŸ› Bugs Fixed

    • Consul: The bundled consul version has been bumped to 1.5.1, addressing CVE-2019-12291 and CVE-2018-19653.
    • πŸ›  VReplication: Fixed a panic when connecting to an external MySQL server #5753
    • πŸ“œ Vttablet: Address #5734 by forming MySQL error packet on query parse error during
    • πŸ›  Vtgate: Fixed an issue with prepared statements returning a syntax error #5735
    • Mysqlctl: Fixed a regression where the option mysqlctl_mycnf_template was accidentally removed during refactoring. #5717
    • ♻️ Mysqlctl: Fix a regression where refactoring configuration files removed the options relay-log and relay-log-index from included configuration #5745
    • Vttablet: Fixed a problem with vttablet consuming too much memory during a restore from backup when running with option -s3_backup_log_level LogDebugWithRequestRetries #5777

    Functionality Added or Changed

    • 🚚 Vtctld: The reference to web/vtctld has been removed from the Makefile #5778
    • mysqlctld: An option has been added to mysqlctl to allow passdown of LD_PRELOAD libraries. This is useful in the case where a custom memory allocation library needs to be specified. #5730
    • πŸ”Œ Logging: Add datadog plugin for tracing #5681
    • βž• Add support for DISTINCTROW as an alias for DISTINCT SQL syntax #5726 #5718
    • 0️⃣ Vstream: support default values #5736
    • πŸ‘ VReplication: Add support for ExternalizeVindex #5716
    • πŸ‘ ApplySchema: Add support for ALTER DATABASE #5733

    πŸ— Build Environment Changes

  • v5.0.1

    January 15, 2020

    Incompatible Changes

    πŸš€ This release fixes an issue discovered after releasing Vitess 5.0.0 Beta (#5711). We recommend reading the release notes for 5.0.0 when upgrading from an earlier release.

    πŸ› Bugs Fixed

    • πŸ”§ mysqlctl: Vitess programs would not run if configuration files could not be located #5711
    • VReplication: The keyrange was incorrectly being quoted twice #5715
    • πŸš€ Release packaging: Fix issues discovered in automated release scripts #5714
    • 🐳 Docker images: provide a workaround for missing configuration files in vitess/lite image #5707
    • πŸ”„ Change http links to https #5697
    • 🚚 helm: Fix examples to remove undefined flag #5696

    Functionality Added or Changed

    • VReplication: CreateLookupVindex command with backfill #5692
  • v5.0.0

    January 13, 2020

    Known Issues

    Important! This release contains a bug, where MySQL configuration files were intended to be bundled in the mysqlctl binary, are not correctly bundled. The workaround is to ensure that $VTROOT/config is available on your system. We intend to fix this issue before final release of Vitess 5.0.

    Incompatible Changes

    πŸš€ This release includes the following changes, which may result in incompatibilities when upgrading from a previous release:

    πŸš€ Removal of binaries from release packages
    πŸš€ The release packages have been improved to no longer ship unneeded dependencies. If you previously installed etcd, zookeeper or consul as part of the Vitess package, you will now need to download and install it separately. #5545 #5645

    ♻️ Refactoring MySQL Configuration Files
    πŸ”§ The included my.cnf files for MySQL have been simplified and improved. There may be some isolated cases where the difference in configuration may lead to compatibility issues with a previous installation of MySQL. #5326 #5517 #5704

    VTROOT, VT_MYSQL_ROOT, VTDATAROOT changes
    You are no longer required to specify the environment variables VTROOT, VT_MYSQL_ROOT, VTDATAROOT in order to run the Vitess examples. These variables have been changed to autodetect. Use of these variables is still permitted, but discouraged, as they may be removed in a future release. #5488 #5506 #5654 #5560

    Elimination of VTTOP environment variable
    🚚 The environment variable VTTOP has been eliminated, with all uses changed to VTROOT instead. In most cases VTROOT can also be autodetected, so it is encouraged to remove VTTOP from any scripts. #5527 #5632 #5546 #5548

    Removal of vtqueryserver
    🚚 The unused vtqueryserver utility has been removed. #5583

    🌐 web_dir2 and web_dir options removed from vtctld
    🌐 The web files used by vtctld are now embedded into the vtctld binary, simplifying configuration. This results in a behavior change since web_dir and web_dir2 are no longer valid parameters when starting vtctld. Please be sure to update your startup scripts accordingly. #5597

    Examples now check for dependencies
    The examples now check for shell programs that are required to execute correctly. If you do not have the following programs in your PATH, it will result in an error: mysqld etcd etcdctl curl vtctlclient vttablet vtgate vtctld mysqlctl #5543

    πŸ”„ Changes to build from source
    πŸ— The build from source instructions have changed. See https://vitess.io/docs/contributing/build-from-source/ for details.

    πŸ› Bugs Fixed

    • The stability of prepared statements has been improved #5562 #5441
    • The portability of shell scripts has been improved. #5384 #5480
    • πŸ”€ The semi-sync extension is now optional #5483
    • A panic could occur when a sequence name was bad. #5621
    • Loading TLS and x509 certificates now consumes less memory. #5423
    • Helm no longer complains about nil values in templates. #5484
    • βž• Add workaround for common MySQL replication error #5627
    • βž• Add null as a valid constant SELECT value for vtexplain #5624
    • Creating new shards could overwhelm a topo server. Vitess now no longer performs actions concurrently when creating shards in the topo. #5436
    • VTExplain could race when waiting around for the fakesqldb tabletserver #5476
    • VTGate now correctly resolves columns in information_schema tables. #5608
    • The query SHOW FULL COLUMNS now works correctly with a filter #5558
    • Backups now pass the correct filesize to Ceph #5369
    • Vtbackup will now stop replication after reaching the goal position. #5437
    • ⬆️ The bundled version of log4j has been upgraded #5691
    • VTTablet now accepts external tablets in Azure MySQL #5683
    • πŸ‘ VTGate now advertises protocol support for FOUND ROWS #5676
    • A buffered reader is now placed in front of xtrabackup’s STDOUT pipe, potentially reducing memory usage #5666
    • Consultopo: Enforce a connection heartbeat for Watch() #5673
    • The tabletmanager now ensures that it is fully shutdown before closing the topology client #5667

    Functionality Added or Changed

    • Several improvements to VReplication #5432 #5628 #5367 #5594 #5575 #5574 #5509 #5500 #5498 #5494 #5491 #5457 #5456 #5454 #5429 #5490 #5515 #5689 #5688 #5669
      Including:
      • Support for file+pos based replication, allowing replication in from MySQL instances which do not have GTIDs enabled
      • New Materialize command
      • Support for Vdiff, Reshard
      • Vindex and multi-column support
    • 🐳 Several Improvements to Docker files. #5592 #5510 #5470 #5458 #5444 #5492 #5661
      Including:
      • A refactoring of vitess/lite files
      • Support for aarch64
      • The default mysql data files are now removed from the vitess/lite images
      • The latest xtrabackup is always retrieved
      • Jemalloc and tcmalloc are now bundled.
    • 0️⃣ Mysqlctl now checks that it is not being executed as root. This helps debugging scenarios, since mysqld will refuse to execute as root by default. #5419 #5644
    • 🐧 The examples have been improved. Improvements include a check that all dependencies are installed, and warn if it looks like selinux or apparmor prevented mysqlctl from starting #5543 #5573 #5461 #5433 #5426 #5386
    • πŸ‘ The bootstrap process will search for etcd in the PATH, and won’t install it if it is present. In addition, etcd on aarch64 is now supported. #5427 #5481 #5428 #5495 #5434 #5425
    • πŸ‘ VTGate now supports proxy protocol #5563
    • There is now an option for TLS enabled etcd server connections. #5496
    • Vtgate now advertises itself as a MySQL 5.7 server #5482
    • A vt_monitoring user has been added to init_db.sql. #5486
    • πŸ‘ Mysqlctl now supports bootstrapping MariaDB 10.4. Please note that MariaDB 10.4 is not yet supported. #5374
    • VTGate now provides a scatter of query statistics #5422
    • πŸ‘ Vttablet now provides better granularity for errors that come out of the transaction pool #5373
    • πŸ‘ Experimental support for region-aware vindexes, and xxhash vindexes #5390 #5439
    • πŸ‘ VTTablet servers now support an option to disable caching field names to avoid schema mismatches #5572
    • VTGate: Query routing has been improved when using LEFT JOIN queries #5551
    • πŸ“œ VTGate: The parser now supports additional types of BEGIN statements #5550
    • VTTablet servers no longer rechecks the mysql port if it was explicitly provided. This helps ensure operation in proxied environments. #5383
    • The 64 bit hash implementation has been changed from 3DES to DES #5529
    • πŸ‘ Demote a master vttablet to a SPARE instead of REPLICA is now supported #5520
    • βœ… Vttestserver now supports vschema operations via vtgate #5582
    • The vtgate resolver has been simplified #5679

    πŸ— Build Environment Changes

  • v4.0.1

    November 15, 2019

    πŸ“¦ An issue was discovered in the previous packages, where packages reported the wrong version.

    πŸ› Bugs Fixed

    • βž• Add stronger protection against running examples as root #5431
  • v4.0.0

    November 05, 2019

    Important Changes

    • ⬆️ Vitess 4.0 no longer supports Statement-Based Replication. Users upgrading will need to switch to Row-Based Replication.
    • πŸš€ V2 Routing is now deprecated and will be removed in a future release. This was an undocumented API that was never officially supported.
    • 0️⃣ The default topology server has switched to etcd. ZooKeeper and Consul remain fully supported.
    • πŸ‘Œ Support for InfluxDB as a monitoring backend has been removed. Prometheus is recommended in place.
    • βœ… VReplication support is experimental. We are satisfied with the stability and test coverage of this feature but may make changes to the command-line interface based on feedback received. These changes will not follow the Vitess deprecation policy.
    • πŸ”€ Prepared statements support is experimental. Support for prepared statements was merged later in the development cycle, and anticipate that there may still be undiscovered edge-cases.
    • ⬆️ The internal representation of topology has been altered between Vitess 3.0 and 4.0. For the most part, it is backward and forwards compatible. The only caveat is to not upgrade to 4.0 while performing horizontal/vertical resharding.
    • πŸ“‡ The internal Vitess tables VReplication, local_metadata and shard_metadata tables have been modified to support multiple databases in the same mysql instance. This schema change is expected to be forwards and backwards compatible with Vitess 3.0.
    • πŸ‘Œ Support for VStream is experimental. We invite feedback from users before stabilizing this feature in an upcoming release.
    • πŸ‘€ The included MySQL configuration files bundled with Vitess have been improved. This may lead to cases where a MySQL server started with Vitess 3.0 will not start in Vitess 4.0. Please see the error log for the MySQL server for details.
    • ⏱ The configuration flags timeout, replication_timeout, gcs_backup_storage_project and lock_timeout have been deprecated and will be removed in the next release of Vitess.
    • ⬆️ The reparenting process has been significantly improved in Vitess 4.0. It is important that you follow the recommended upgrade order for components so that reparents work properly while components are on mixed versions.

    πŸ› Bugs Fixed

    Functionality Added or Changed

    πŸ— Build Environment Changes

  • v3.0

    December 10, 2018

    Vitess 3.0 many new features over 2.2.

    Download

    • 🐳 Server binaries are available in the Docker image "vitess/lite:v3.0.0-rc.1".
    • πŸ“¦ Java client packages are published on Maven Central (To be uploaded).
    • Source code is available via the tag "v3.0.0-rc.1".

    ⬆️ Upgrading

    πŸš€ All Vitess 3.0 changes are backward compatible with the 2.2 release. Please make sure that you follow the recommended upgrade order: vttablet->vtctld->vtgate.

    πŸ”„ Changes since 2.2

    Usability

    • Tutorial that runs on Minikube
    • Tutorial that runs on local host
    • Simplified db parameters for vttablet
    • πŸ‘ Formal support for externally managed mysql

    Monitoring

    • Prometheus plug-in

    SQL constructs

    • ⏱ Comment directives: QUERY_TIMEOUT_MS=1000, MULTI_SHARD_AUTOCOMMIT, SKIP_QUERY_PLAN_CACHE
    • Partial Scatter
    • πŸ†• New ALTER VSCHEMA syntax
    • Multi-table DDL statements
    • Workbench connectivity
    • Cross-shard subqueries
    • πŸ‘Œ Improved handling of select * constructs

    🐎 Performance

    • vtbench: Benchmarking tool
    • 🐎 MySQL protocol performance improvements
    • Faster reparents
    • Parallelized backups (4X faster)
    • Snappier InitShardMaster and PlannedReparentShard
    • πŸ‘Œ Improved coordination with Orchestrator

    πŸ†• New MySQL versions support

    • MySQL 8.0 and MariaDB 10.3

    πŸ— Build

    • πŸ— Pure Go 1.11. You can now build with CGO_ENABLED=0.

    Resharding and VReplication

    • πŸ‘‰ ShowResharding
    • CancelResharding
    • Safer MigrateServedTypes
    • βͺ Auto-reverse direction of MigrateServedTypes to allow rollback of a previous MigrateServedTypes
    • Workflow SplitDiff parallelized across shards
    • πŸ‘― SplitClone uses destination master for comparison
  • v3.0.0-rc.3

    December 09, 2018

    πŸ›  Fix a couple of issues in local example:

    • βͺ restore vschema.sql to keep vagrant working
    • teardown correct vttablets after horizontal resharding
  • v3.0.0-rc.2

    December 09, 2018
    • πŸ›  Fixed a typo in helm charts
    • βœ‚ Removed settings that are incompatible with 8.0
  • v3.0.0-rc.1

    December 08, 2018

    πŸš€ This is the first release candidate of the 3.0 release.

    πŸš€ We expect minimal changes between this and the final 3.0 release.

    Download

    • 🐳 Server binaries are available in the Docker image "vitess/lite:v3.0.0-rc.1".
    • πŸ“¦ Java client packages are published on Maven Central (To be uploaded).
    • Source code is available via the tag "v3.0.0-rc.1".

    Usability

    • Tutorial that runs on Minikube
    • Tutorial that runs on local host
    • Simplified db parameters for vttablet
    • πŸ‘ Formal support for externally managed mysql

    Monitoring

    • Prometheus plug-in

    SQL constructs

    • ⏱ Comment directives: QUERY_TIMEOUT_MS=1000, MULTI_SHARD_AUTOCOMMIT, SKIP_QUERY_PLAN_CACHE
    • Partial Scatter
    • πŸ†• New ALTER VSCHEMA syntax
    • Multi-table DDL statements
    • Workbench connectivity
    • Cross-shard subqueries
    • πŸ‘Œ Improved handling of select * constructs

    🐎 Performance

    • vtbench: Benchmarking tool
    • 🐎 MySQL protocol performance improvements
    • Faster reparents
    • Parallelized backups (4X faster)
    • Snappier InitShardMaster and PlannedReparentShard
    • πŸ‘Œ Improved coordination with Orchestrator

    πŸ†• New MySQL versions support

    • MySQL 8.0 and MariaDB 10.3

    πŸ— Build

    • πŸ— Pure Go 1.11. You can now build with CGO_ENABLED=0.

    Resharding and VReplication

    • πŸ‘‰ ShowResharding
    • CancelResharding
    • Safer MigrateServedTypes
    • βͺ Auto-reverse direction of MigrateServedTypes to allow rollback of a previous MigrateServedTypes
    • Workflow SplitDiff parallelized across shards
    • πŸ‘― SplitClone uses destination master for comparison