vitess v5.0.0 Release Notes

Release Date: 2020-01-13 // over 4 years ago
  • 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