All Versions
Latest Version
Avg Release Cycle
37 days
Latest Release
234 days ago

Changelog History
Page 2

  • v6.0.20-20200617 Changes

    June 17, 2020

    πŸš€ This update fixes a number of regressions which were significant enough that it was decided to backport to the release branch. The issue with XtraBackup not being compatible with MySQL 8.0.20 has been fixed by Percona. Anyone using MySQL 8.0.20 or higher will need to use Xtrabackup 8.0.12.

    πŸ› Bugs Fixed

    • πŸ›  Vtgate: Fix panic from select database() in OLAP mode #6318 Fixes #6200
    • 0️⃣ Vtgate: Fix DEFAULT function not working with keyword column names #6319 Fixes #6221
    • Vttablet: Fix regression where some options could no longer be specified as floating-point values #6320
    • ⚑️ Vtgate: Fix regression on autocommit transactions that led to extra begin statements being issued, and updates getting rolled back because of a previous error #6321 Fixes #6264 and #6285
    • πŸ”’ Security: new versions of Netty and tcnative #6322
    • πŸ›  Vtgate: Fix panic when selecting @variable #6323 Fixes #6294
    • πŸ›  Vtgate: Fix problem with incorrect values being inserted due to bindvariable name collisions #6324 #6327 Fixes #6266
  • v6.0.20-20200525 Changes

    May 25, 2020

    πŸš€ This issue addresses a regression in vtgate performance, which was significant enough that it was decided to backport to the release branch. In addition to this bug fix, there remains a known issue where XtraBackup is not compatible with MySQL 8.0.20. Percona is aware of the issue, and there are no known fixes at this point in time.

    πŸ› Bugs Fixed

    • 🐎 Vtgate: a performance regression was identified as part of the refactoring of vtgate's executor. The executor now maintains a cached copy of the vschema. #6220 #6203
  • v6.0.20-20200519 Changes

    May 19, 2020

    ⚑️ This update fixes a number of issues related to backup discovered in Vitess 6, and is a recommended update for all users. In addition to these bug fixes, there remains a known issue where XtraBackup is not compatible with MySQL 8.0.20. Percona is aware of the issue, and there are no known fixes at this point in time.

    πŸ› Bugs Fixed

    • ⏱ VTTablet: An issue exists where transaction pool timeout did not apply, and connections never expired #6197
    • VTTablet: An issue was discovered where copying a backup to S3 failed with an error of closed network connection: cannot copy data. This has been worked around by retrying of S3 upload requests. #6199
    • ⬆️ VTTablet: The included version of pgzip has been upgraded to v1.2.4. This helps address an occasional panic that was observed with xtrabackup backups. #6198
  • v6.0.20-20200508 Changes

    May 08, 2020

    πŸš‘ Two regressions were discovered in Vitess 6 after release. While neither are critical, they are visible enough that we wanted to release a patch update:

    🚚 A regression in the packaging of tar.gz files moved the examples from examples/ to share/vitess/examples. This made the install from binary instructions incorrect. #6159 #6160

    A regression in how select database() returned the current database in use broke how the MySQL command-line client changes the currently selected database. This issue is specific to the mysql client, and is not known to affect application usage of com_init_db or use <dbname> #6157 #6158

  • v6.0.20-20200429 Changes

    April 29, 2020

    Incompatible Changes

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

    πŸ”„ Changes to Local Examples

    ⚑️ The local examples have been updated to use the new VReplication workflows for MoveTables and Resharding. This obsoletes the previous workflows of Vertical Split Clone and Horizontal Sharding. The earlier examples remain available in the β€œlocal.legacy” example directory for now. #6016 #6015 #6052 #6072 #6106 #6121

    πŸ”„ Change to Helm Chart

    ⚑️ The helm chart has been updated to default to using Kubernetes as the Topology Server provider. This change was required to remove the dependency on etcd-operator, which is no longer under active support. #5989

    Earlier Kubernetes Operator Retired

    πŸ‘Œ Support for the Vitess Kubernetes Operator has been removed due to a lack of maintainers. Adoption is understood to be low, but users are encouraged to migrate to using the Helm charts which continue to be supported, or PlanetScale’s Vitess Operator (provided by a third party) #5873

    πŸ‘ SQL Support: Keywords are no longer lowercase

    Vitess no longer lower cases SQL keywords. In corner cases, this may affect applications which made specific use of SQL keywords, and then referred to a column in the result set #5897

    🚚 SQL Support: Parenthesis are now removed from the AST

    🚚 Vitess now simplifies expressions to remove parentheses from expressions. In corner cases, this may affect applications that use an expression that contains parens and then refer to it as a column in the result. #5906

    ⚑️ Statement Based Replication, SplitQuery and UpdateStream

    ⚑️ Code for the unsupported features of Statement-based replication (SBR), SplitQuery and UpdateStream has now been removed. Users using SBR are encouraged to switch to using Row-based replication instead. #5940 #5972 #5928

    Messaging: First Class Citizen + API Improvements

    The messaging feature has had several breaking changes and feature additions

    • πŸ‘ Direct inserts are now supported: INSERT INTO msg_table SELECT col1, col2...
    • ⏱ time_scheduled and time_created are no longer required nor automatically populated.
    • priority is a new required field. Messages with a lower priority will be processed first.
    • Message retention is now measured after time_acked instead of time_scheduled
    • New table options vt_min_backoff and vt_max_backoff set bounds on exponential backoff for message retries
    • 33% backoff jitter has been added for messages that are getting postponed to prevent thundering herds.

    πŸ‘‰ Users of the messages feature are encouraged to read through the full details in issue #5947 #5948 #6114

    πŸ“¦ RPM and DEB Packages

    Vitess binaries and examples are now installed in system standard paths, rather than the /vt directory #5836

    Vitess Go Driver

    Values of type sqltypes.Timestamp are now automatically converted to time.Time values

    Simplified VTtablet Schema Load Process

    The process of loading vttablet schema has been simplified, as many of the statistics loaded were expensive to gather but remained unused. This may lead to compatibility breakage in the use of the features: Sequences, VStreamer and Messages #5951

    Planned Reparent

    ⬆️ The implementation of Planned Reparent and Emergency Reparent have been improved, with more graceful handing of failure modes. While this change is functionality neutral, it is important that Vitess components are upgraded in the recommended order. #6050

    πŸ› Bugs Fixed

    Binlog Client: Vitess components now randomize the server_id when acting as a MySQL replica. #5998

    πŸ‘‰ heartbeat: Prevent a scenario where tables could be created on a replica leading to errant transactions. Now tables are only created on the master with binlog ON, using the app_user not dba_user #6053

    Messages: For the mysql protocol, buffered results coming from vitess are flushed a minimum of every 100ms, and configurable by mysql_server_flush_delay. This helps prevent against a case where intermittent streaming could delay messages from being sent. #5879

    mysqlctl: Correctly escape and quote passwords that contain special characters. #5761

    πŸ›  VReplication: Several improvements to failure handling and miscellaneous fixes #5753 #5792 #5801 #5842 #5935 #5905 #5845 #5942

    Vtcompose: Add a check to make sure that files can be read #6024

    ♻️ Vtcompose: refactor vtcompose for improved testability #5994

    πŸ‘ Vindexes: Support for a region_json Vindex #6017 #5806 #5955

    Vtctl: Before applying a VSchema, vtctl now correctly checks that the schema exists. #5931

    Vtctl: Vtctl now exits early if the topo_global_root was set incorrectly #6119

    Vtctl: EnsureVSchema and GetOrCreateShard now pass in the cell name. This helps prevent against corruption, which could occur from auto-rebuilding of cells automatically when creating a new shard or keyspace. #5930

    πŸ›  VTExplain: An issue where incorrectly formatted comments could lead to a hang has been fixed. #5984

    VTGate: Leading zeros were incorrectly dropped in microsecond timestamps when using prepared statements #5901

    VTGate: Setting the transaction_mode in a mysql session is now case insensitive. #5963

    ⚑️ VTGate: When updating consistent indexes, VTGate applies an optimization where it checks if anything really changed before applying an update. In the case that this check results in errors, VTGate will now skip the optimization and execute the update regardless. #5883

    🚚 VTGate: Remove allocation of unused bytes #5874

    VTGate: The gateway interface functionality has been simplified in anticipation of two new gateway implementations: TabletGateway and VTDirectGateway #5978 #5992

    ⚑️ VTGate: The process of watching for VSchema updates from the topology server now recovers successfully if it receives an invalid update. This helps prevent against a scenario where a malformed vschema could take down all vtgate servers. #6051

    VTGate: Previously VTGate performed health checks against all keyspaces, not just keyspaces listed in keyspaces_to_watch. Healthchecks are now limited correctly. #5815

    πŸ‘ VTGate: SQL Support: database() is now only rewritten against dual #5793

    VTGate: Plan Cache is now disabled for statements with nil instructions #6045

    πŸ“œ VTGate: Make sure to only accept DDL that can be parsed, at least partially #6023

    🌲 VTGate: Log when accepting a new connection fails #5881

    VTGate: Prepared Statements did not correctly handle signed integers #5974

    VTGate: Executor statistics did not correctly account for dividing by zero, leading to a potential panic. #5904

    πŸ‘ VTGate: The error message for unsupported DDL creation has been improved #6109

    VTGate: The metric QueriesProcessedByTable was not correctly incremented with streaming queries processed by vtgate #6057

    0️⃣ GRPC Client: The default keep alive and keep alive timeout values have been changed from unlimited to 10 seconds. This helps prevent cases where queries could hang while waiting for a failed pod or node. In addition, the defaultMaxMessageSize is now set to 16MB #5922 #3890

    πŸ“‡ VTTablet: local_metadata is now populated after an agent has been initialized. This helps prevent against the ambiguous case where both -init_populate_metadata and -restore_from_backup are specified. #5783

    VTTablet: A hang could occur when shutting down a tablet server when the Topo Server is unavailable. Tablet servers will now time out correctly. #5865

    ⚠ VTTablet Health Check: A warning is now logged when the vttablet StreamHealth RPC fails #5917

    VTTablet Planned Reparent: A new context is now created for calling UndoDemoteMaster. This helps prevent a scenario where the existing context may have expired. #5841

    VTTablet: A panic could occur when calling NewDBConnNoPool #6086

    🌲 VTTablet: Queries of type STREAM_EXECUTE were inadvertently dropped from logging #6056

    Zookeeper Topo: Trailing newlines are now ignored when specifying-topo_zk_auth_file

    ⚠ Misc: Stats counters would erroneously print warnings to log files when adding a negative value. This warning did not consider the case where counters are reused. #5988

    Misc: Binary log events with the special name of "mysql.rds_*" are now skipped. This helps improve compatibility with Amazon RDS flavors #5966

    Functionality Added or Changed

    🐳 Docker: sysstat and strace are now bundled in vitess/lite images #5814

    🐳 Docker: new lite images based on Red Hat UBI 7 are now available #6100

    Example Code: An are you alive example has been added #5646

    Example Code: The demo application has been migrated from Python to Go #6022

    Example Code: A set of notes and scripts on how to use Vitess with common frameworks #6034

    βœ… Helm charts: now work with the latest Kubernetes version. An issue where the 308_final.yml script did not delete a tablet has also been fixed. #6048 #6083 #6075 #6074

    0️⃣ Helm charts: Helm charts now enable proxy_tablets by default #6112

    🚚 Java Client: The deprecated VTGateBlockingConn client has now been removed. The newer VTGateBlockingConnection client should be used instead. #5973

    🚚 Get Started Guides: Examples now use the VReplication workflows MoveTables and Reshard instead of Vertical Split Clone and Horizontal Resharding. #6016 #6015 #6052 #6072 #6106

    ♻️ Local Example: Scripts that start services have been refactored to ./scripts/, ./scripts/ and start only one daemon at a time. The motivation for doing this was to make the usage more closely mimic init scripts. #5808

    Messaging: add new priority field #5967

    πŸ‘ Messaging: Setting both a minimum and maximum backoff time is now supported (rather than exponentially backing off forever) #5979

    ♻️ Messaging: Messaging has been refactored to use Row-based Replication vstreamer feed #5913

    Messaging: A 33% Jitter has been added to postpone backoff #6092

    Topology Service: A new Kubernetes native Topology Server is now available. #5703 #5957

    vitessdriver: add ability to set custom gRPC dial options #5820

    πŸ›  VReplication: Several Improvements to the stability of Vstreamer stability and minor bug fixed. #5878 #5926 #5891 #5804

    VReplication: A debugging interface is now provided at /debug/vrlog #5889

    🚚 VReplication: The workflows previously known as 'Migrate', 'MigrateReads' and 'MigrateWrites' have been renamed to MoveTables, SwitchReads and SwitchWrites respectively. This breaking change was made because VReplication was previously considered experimental. The new name disambiguates the use of 'Migrate'. These commands also now support a β€˜Dry run’ option. #6018

    πŸ‘ VReplication: Filtered VReplication now supports int and varbinary filters for columns #5949

    VStream: The Vstream now provides journal events, using a similar interface as VReplication. #5746

    Vtctl: A -force flag has been added so that calls to DeleteCellInfo can still succeed after a topology server has been permanently shut down. #6013

    Vtctl: A --skip-verify option has been added to CopySchemaShard. This helps in scenarios where source and destination use different versions of MySQL, and verifying the schema as identical may fail. #5265

    Vtctld: The flag -proxy_tablets has been added. This allows vtctld act as a reverse proxy for all of the tablets it manages. This helps ease a pain point for Kubernetes users #6058 #6062

    Vtctld: A new health check (/debug/status) has been added to check the status of tablet servers #6113

    Vtctld: Specifying the cell when initializing vtctld is now optional. If you don't specify a cell, vtctld will choose one for you. #6111

    πŸ‘ VTGate: Improvements to SQL Support:

    • For compatibility with mysqldump, the syntax SET unique_checks=0 and SET sql_quote_show_create=1 is now passed but ignored #5846 #5856
    • The syntax SET SESSION transaction_read_only = 0 is now supported #5827
    • USE INDEX (without index name) #5811 #5763
    • SHOW INDEXES ..[EXTENDED] and SHOW KEYS #6006 #5936
    • SHOW CREATE TABLE with qualifier #5585
    • GROUP_CONCAT() with a LIMIT is now permitted #5871
    • SELECT options can now appear in any order #6082
    • Correctly handle DML without a WHERE clause #6011
    • Support for DML scatter queries with lookup vindexes #5829
    • Function names are now formatted correctly #5918
    • Ensure correctness when using SCHEMA() and FOUND_ROWS() functions #5732
    • Ensure correctness of found rows #5924 #5923
    • Improved testing for the use of last_insert_id() and rollback #5887
    • Support for user defined variables #5921
    • Support for partial update of a composite owned Vindex #5875
    • Improve Update and Delete Query Routing for IN Clause #6116
    • Allow SET user defined variables #6093

    - The parser and executor have been incrementally refactored for both maintainability and generating query plans #5770 #5892 #5941 #5995 #6031 #6010 #6090 #5995 #5941 #6035 #6069 #6042 #6047 #6080 #6055 #6064 #6099 #6054 #6108 #6105 #5982 #5959 #5993 #6077 #6096

    VTGate: When a batched insert fails, VTGate will now only return a list of problem rows that failed due to vindex.Verify errors. Rows that did not produce problems are now omitted. #5896

    0️⃣ VTGate: The ability to set a default workload is now possible, via -mysql_default_workload #5888

    🚚 VTGate: The previously deprecated v2 routing API has been removed. However, v2 routing is still supported in the limited context of explicitly targeting shards. In the context of explicitly targeting shards, autocommit is now supported and routing has become more flexible. #5962 #5909 #6040

    ⬆️ VTGate: Client connections are now permitted to upgrade their transaction_mode (for example from MULTI to TWOPC) on a per-session basis #6049

    ♻️ VTTablet: The Vttablet Server has been refactored and componentized. This change is a precursor to upcoming features such as multiple schemas per tablet #6027 #6020 #6009 #5809 #6094 #6070

    VTTablet: A new option named db_connect_timeout_ms has been added to specify the amount of time to wait when connecting to a MySQL Server over TCP. For backwards compatibility, the default is to hang waiting indefinitely. #5832

    πŸ‘ VTTablet Backup: Adding Azure Blob backup support #5674 #5937

    VTTablet Backup: The option -xtrabackup_prepare_flags has been added to support passing flags to xtrabackup for the prepare phase #5954

    VTTablet Backup: Previously deprecated flags gcs_backup_storage_project and lock_timeout have been removed #5748

    VTTablet: A new option -enable-consolidator-replicas has been added to the query engine

    VTTablet: Error codes returned by the Tablet Server have been improved #6012

    VTTablet: The option table-acl-config-reload-interval has been added to reload the file specified by -table-acl-config on a timer. This matches similar functionality already available in vtgate. #5925

    🌲 VTTablet: Logging messages have been added during the init tablet phase #6004

    VTTablet: Resource pools now provide more detailed statistics of wait time distribution #5727

    🌲 VTTablet: Logging has been improved during init tasks. This helps improve debugging failed operations. #6004

    ♻️ Misc: The DBConfigs code has been refactored. This helps ensure proper usage of connection parameters for every mysql connection, and cleans up a previous source of bugs. #5833 #5819

    πŸ–¨ Misc: All binaries distributed by Vitess now print their version to the log files on startup #5996 #6005

    Misc: Timeouts are now set for all connection pools #6063

    πŸ— Build Environment Changes

    πŸ— The minimum version of go required to build Vitess has been bumped to 1.13 #5943

    The consul dependency version has been bumped to 1.5.1 to address CVE-2019-12291 and CVE-2018-19653 #5831

    ⚑️ The Java Netty dependency has been updated #5848

    🚚 All remaining Python tests have been converted to Go, and Python has been removed as a dependency #5953 #5983 #5999 #5908 #6025 #5805 #5784 #5774 #5790 #5919 #5838 #5826 #5799 #5795 #5866 #5885 #5798 #5794 #5834 #5837 #5884 #5956 #5855 #5958 #5961 #5934 #5916

    πŸš€ A fix to the Makefile in the previous release of Vitess inadvertently changed the 'make test' target to only run unit tests. This has been reverted. To run the unit tests, execute 'make unit_test' #5786

    🐧 The k3s binary is now installed by on Linux platforms #5987

    πŸ›  Fix unit tests for MySQL 8.0.19 #5803

    ⬇️ Reduce Flakyness of Unit and End to End tests #6001 #6033 #5880 #6043 #6061 #6076 #6101 #6038 #6091

    The unused scripts in tools/sauce_connect_*.sh have been removed #5602

    βœ… Code coverage analysis on tests is now available #5849 #5702

    πŸ›  Fix spelling errors, tests, or other function neutral changes #5986 #5886 #5824 #5828 #5857 #5797 #5933 #5939 #5944 #6095 #6073

    πŸ‘• The pre-commit hook for golangci-lint has been disabled #5952

    βœ… The queries used by Wordpress have been added as an endtoend test #6081 #5898

    πŸ“¦ The unused package mysqlproxy has been removed from sources #6079

  • v6.0.0-rc.1

    April 27, 2020
  • v5.20 Changes

    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 Changes

    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 Changes

    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

    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 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
      • 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
      • 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 Changes

    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