# Vitess
# Vitess 10.0.2
27, May 2021 Source (opens new window)
Bug fixes
Query Serving
- Fixes encoding of sql strings #8029
- Fix for issue with information_schema queries with both table name and schema name predicates #8099
- PRIMARY in index hint list for release 10.0 #8159
VReplication
- VReplication: Pad binlog values for binary() columns to match the value returned by mysql selects #8137
CI/Build
Build/CI
- update release notes with known issue #8081
Documentation
Other
- Post v10.0.1 updates #8045
Enhancement
Build/CI
- Added release script to the makefile #8030
Other
- Add optional TLS feature to gRPC servers #8176
Other
Build/CI
- Release 10.0.1 #8031
The release includes 14 commits (excluding merges)
Thanks to all our contributors: @GuptaManan100, @askdba, @deepthi, @harshit-gangal, @noxiouz, @rohit-nayak-ps, @systay
# Vitess 9.0.2
25, May 2021 Source (opens new window)
Bug fixes
Cluster management
- Restore: Check disable_active_reparents properly before waiting for position update #8114
Query Serving
- Fix information_schema query with system schema in table_schema filter #8095
- Fix for issue with information_schema queries with both table name and schema name predicates #8096
- Fix for transactions not allowed to finish during PlannedReparentShard #8098
- PRIMARY in index hint list #8158
CI/Build
Build/CI
- Release 9.0.1 #8065
- 9.0.0: update release notes with known issue #8080 #8082
- Added release script to the makefile #8182
- Update do_release to work in the 9.0 branch #8184
Performance
Cluster management
- Revert "backup: Use pargzip instead of pgzip for compression." #8174
The release includes 17 commits (excluding merges)
Thanks to all our contributors: @GuptaManan100, @deepthi, @HARSHIT, @rafael, @systay
# Vitess 9.0.1
06, May 2021 Source (opens new window)
This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components.
Bug fixes
Cluster management
- Backport: Respect -disable_active_reparents in backup/restore #8063
Other
- [9.0] fix regression - should be able to plan subquery on top of subquery #7683
Query Serving
- [9.0] Fix for reserved connection usage with transaction #7666
- [9.0] Fix MySQL Workbench failure on login with
select current_user()#7706 - [9.0] make sure to handle subqueries on top of subqueries #7776
- [9.0] make sure to not log sensitive information #7778
- [9.0] ddl bypass planner #8035
- [9.0] Memory Sort to close the goroutines when callback returns error #8040
- [9.0] Fix bug with reserved connections to stale tablets #8041
- [9.0] Fix for Query Serving when Toposerver is Down #8046
- ignore the error and log as warn if not able to validate the current system settings value #8062
VReplication
- VReplication: fix vreplication timing metrics #8060
- VReplication: Pad binlog values for binary() columns to match the value returned by mysql selects #8061
Documentation
Other
- 9.0.0 Release Notes #7384
Other
Build/CI
- Fix Dockerfiles for vtexplain and vtctlclient #7418
Query Serving
- Fix table parsing on VSchema generation #7511
- [9.0] Show anywhere plan fix to consider default keyspace #7530
- [9.0] Reset Session for Reserved Connection when the connection id is not found #7544
- Healthcheck: update healthy tablets correctly when a stream returns an error or times out #7732
VReplication
- MoveTables: Refresh SrvVSchema and source tablets on completion #8059
The release includes 43 commits (excluding merges)
Thanks to all our contributors: @askdba, @deepthi, @dyv, @harshit-gangal, @rafael, @rohit-nayak-ps, @shlomi-noach, @systay
# Vitess 10.0.1 Release
04, May 2021 Source (opens new window)
Bugs Fixed
- Running binaries with
--versionor runningselect @@versionfrom a MySQL client still shows10.0.0-RC1
# Vitess 10.0.0
07, May 2021 Source (opens new window)
This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components.
Known Issues
- Running binaries with
--versionor runningselect @@versionfrom a MySQL client still shows10.0.0-RC1 - Online DDL cannot be used if you are using the keyspace filtering feature of VTGate
- VReplication errors when a fixed-length binary column is used as the sharding key #8080
Bugs Fixed
VTGate / MySQL compatibility
- Remove printing of ENFORCED word so that statements remain compatible with mysql 5.7 #7458
- Allow any ordering of generic options in column definitions #7459
- Corrects the comment handling in vitess #7581
- Fix regression - should be able to plan subquery on top of subquery #7682
- Nullable Timestamp Column Fix #7740
- VTGate: Fix the error messages in drop, create and alter database commands #7397
- VTGate: Fix information_schema query with system schema in table_schema filter #7430
- VTGate: Fix Set Statement in Tablet when executed with bindvars #7431
- VTGate: Fix for Query Serving when Toposerver is Down #7484
- VTGate: Add necessary bindvars when preparing queries #7493
- VTGate: Show anywhere plan fix to consider default keyspace #7531
- VTGate: Fix table parsing on VSchema generation #7511
- VTGate: Use the emulated MySQL version for special comments #7510
- VTGate: Reset Session for Reserved Connection when the connection id is not found #7539
- VTGate: Healthcheck: update healthy tablets correctly when a stream returns an error or timeout #7732
- VTGate: Fix for reserved connection usage with transaction #7646
- VTGate: Fix MySQL Workbench failure on login with
select current_user()#7705 - VTGate: Constraint names and database names with spaces. #7745
- VTGate: Fix dual table query when system schema is selected database #7734
Other
- VTTablet: Correctly initialize statsTabletTypeCounts during startup #7390
- Backup/Restore: Respect -disable_active_reparents in backup/restore #7576
- Backup/Restore: check disable_active_reparents properly before waiting for position update #7703
Functionality Added or Changed
VTGate / MySQL compatibility / Query Serving
- VTGate: Gen4 Planner: AxB vs BxA #7274
- VTGAte: Gen4 fallback planning #7370
- VTGate: Support for CALL procedures #7287
- VTGate: Set default for @@workload to OLTP #7288
- VTGate: Change @@Version and @@version_comment #7337
- VTGate: Fix VitessAware system variables of type boolean return NULL when MySQL is not involved #7353
- VTGate: Add stats for RowsAffected similar to RowsReturned #7380
- VTGate: Added information_schema_stats_expiry to allowed list of set vars #7435
- VTGate: LFU Cache Implementation #7439
- VTGate: Describe table to route based on table name and qualifier #7445
- VTGate: Olap error message fix #7448
- VTGate: Temporary Table support in unsharded keyspace #7411
- VTGate: Publish table size on schema #7444
- VTGate: Support for caching_sha2_password plugin in mysql/client #6716
- VTGate: Moving Show plan from executor to planbuilder #7475
- VTGate: Adds another case to merge routes for information_schema queries #7504
- VTGate: Add innodb_read_rows as vttablet metric #7520
- VTGate: Adds support for Show variables #7547
- VTGate: gen4: fail unsupported queries #7409
- VTGate: Fix Metadata in SHOW queries #7540
- VTGate: Update AST helper generation #7558
- VTGate: Avoiding addition of redundant unary operators #7579
- VTGate: Optimise AST rewriting #7583
- VTGate: Add Show Status query to vtexplain and make asthelpergen/sizegen quiet #7590
- VTGate: Add support for SELECT ALL #7593
- VTGate: Empty statement error code change in sql parsing #7618
- VTGate: Socket system variable to return vitess mysql socket #7637
- VTGate: Make DROP/CREATE DATABASE pluggable #7381
- VTGate: Allow Select with lock to pass through in vttablet #7584
- VTGate: Fix ordering in SELECT INTO and printing of strings #7655
- VTGate: AST Equals code generator #7672
- VTGate: [tabletserver] More resilient wait for schema changes #7684
- VTGate: Fix flush statement planner #7695
- VTGate: Produce query warnings for using features not supported when sharded #7538
- VTGate: Support for ALTER VITESS_MIGRATION statements #7663
- VTGate: Solve I_S queries using CNF rewriting #7677
- VTGate: System schema queries #7685
- VTGate: Make the AST visitor faster #7701
- VTGate: COM_PREPARE - Single TCP response packet with all MySQL Packets #7713
- VTGate: Replace the database name in result fields only if needed #7714
- VTGate: Split ast_helper into individual gen files #7727
- VTGate: Adds support for ordering on character fields for sharded keyspace queries #7678
- VTGate: Show columns query on system schema #7729
- VTGate: Disallow foreign key constraint on ddl #7780
- VTGate: VTGate: support -enable_online_ddl flag #7694
- VTGate: Default to false for system settings to be changed per session at the database connection level #7921
- VTGate: vtctl: return error on invalid ddl_strategy #7924
- VTGate: [10.0] Squashed backport of #7903 #7927
- VTGate: [10.0] Fix bug with reserved connections to stale tablets #7935
- VTGate: [10.0] Fix for keyspaces_to_watch regression #7936
- VTGate: [10.0] Update healthy tablets correctly for primary down #7937
- VTGate: [10.0] Allow modification of tablet unhealthy_threshold via debugEnv #7938
Testing
- Fuzzing: Add vtctl fuzzer #7605
- Fuzzing: Add more fuzzers #7622
- Fuzzing: Add 3 fuzzers for mysql endpoints #7639
- Fuzzing: Add oss-fuzz build script #7591
- Fuzzing: Add requirement for minimum length of input data #7722
- Fuzzing: Add new mysql fuzzer #7660
- Fuzzing: Add [grpcvtgateconn] fuzzer #7689
- Fuzzing: Make mysql fuzzer more calls during each iteration #7766
Performance
- VTGate: [perf] zero-copy tokenizer #7619
- VTGate: [perf: sqlparser faster formatting #7710
- VTGate :[perf] Cache reserved bind variables in queries #7698
- VTGate: [perf] sqlparser yacc codegen #7669
- VTGate: Making fast AST rewriter faster #7726
- VTGate: Cached Size Implementation #7387
- VTGate: Plan remove mutexes #7468
- LFU Cache Bug Fixes #7479
- [cache] Handle all possible initialization cases #7556
- VTGate: [servenv] provide a global flag for profiling #7496
- VTGate: [vttablet] Benchmarks and two small optimizations #7560
- [pprof]: allow stopping profiling early with a signal #7594
- perf: RPC Serialization #7519
- perf: keyword lookups in the tokenizer #7606
Cluster Management
- [vtctld] Migrate topo management RPCs #7395
- [vtctldclient] Set
SilenceErrorson the root command, so we don't double-log #7404 - [vtctldclient] Command line flags: dashes and underscores synonyms #7406
- Extract the
maxReplPosSearchstruct out totopotools#7420 - Add protoutil package, refactor ISP to use it #7421
- Add
ErrorGroupto package concurrency, use inwaitOnNMinusOneTablets#7429 - [vtctld / wrangler] Extract some reparent methods out to functions for shared use between wrangler and VtctldServer #7434
- [vtctld/wrangler] Extract
EmergencyReparentShardlogic to dedicated struct and add unit tests #7464 - Provide named function for squashing usage errors; start using it #7451
- [concurrency] Add guard against potentially blocking forever in ErrorGroup.Wait() when NumGoroutines is 0 #7463
- Add hook for statsd integration #7417
- [concurrency] Add guard against potentially blocking forever in ErrorGroup.Wait() when NumGoroutines is 0 #7463
- Resilient rebuild keyspace graph check, tablet controls not in
RebuildKeyspaceGraphcommand #7442 - [reparentutil / ERS] confirm at least one replica succeeded to
SetMaster, or fail #7486 - [reparentutil / wrangler] Extract PlannedReparentShard logic from wrangler to PlannedReparenter struct #7501
- Add backup/restore duration stats #7512
- Refresh replicas and rdonly after MigrateServedTypes except on skipRefreshState. #7327
- [eparentutil] ERS should not attempt to WaitForRelayLogsToApply on primary tablets that were not running replication #7523
- [orchestrator] prevent XSS attack via 'orchestrator-msg' params #7526
- [vtctld] Add remaining reparent commands to VtctldServer #7536
- [reparentutil] ERS should not attempt to WaitForRelayLogsToApply on primary tablets that were not running replication #7523
- Shutdown vttablet gracefully if tablet record disappears #7563
- ApplySchema: -skip_preflight #7587
- Table GC: disable binary logging on best effort basis #7588
- Addition of waitSig pprof argument to start recording on USR1 #7616
- Add combine TLS certs feature #7609
- Check error response before attempting to access InitShardPrimary response #7658
- [vtctld] Migrate GetSrvKeyspace as GetSrvKeyspaces in VtctldServer #7680
- [vtctld] Migrate ShardReplicationPositions #7690
- [reparentutil | ERS] Bind status variable to each goroutine in WaitForRelayLogsToApply #7692
- [servenv] Fix var shadowing caused by short variable declaration #7702
- [vtctl|vtctldserver] List/Get Tablets timeouts #7715
- vtctl ApplySchema supports '-request_context' flag #7777
VReplication
- VReplication: vstreamer to throttle on source endpoint #7324
- VReplication: Throttle on target tablet #7364
- VReplication: Throttler: fix to client usage in vreplication and table GC #7422
- VReplication: MoveTables/Reshard add flags to start workflows in a stopped state and to stop workflow once copy is completed #7449
- VReplication: Support for caching_sha2_password plugin in mysql/client #6716
- VReplication: Validate SrvKeyspace during Reshard/SwitchReads #7481
- VReplication: [MoveTables] Refresh SrvVSchema (for Routing Rules) and source tablets (for Blacklisted Tables) on completion #7505
- VReplication : Data migration from another Vitess cluster #7546
- VReplication : [materialize] Add cells and tablet_types parameters #7562
- VReplication: JSON Columns: fix bug where vreplication of update statements were failing #7640
- VReplication: Make the frequency at which heartbeats update the _vt.vreplication table configurable #7659
- VReplication: Error out if binlog compression is turned on #7670
- VReplication: Tablet throttler: support for custom query & threshold #7541
- VStream API: allow aligning streams from different shards to minimize skews across the streams #7626
- VReplication: Backport 7809: Update rowlog for the API change made for the vstream skew alignment feature #7890
OnlineDDL
- OnlineDDL: update gh-ost binary to v1.1.1 #7394
- Online DDL via VReplication #7419
- Online DDL: VReplicatoin based mini stress test CI #7492
- OnlineDDL: Revert for VReplication based migrations #7478
- Online DDL: Internal support for eta_seconds #7630
- Online DDL: Support 'SHOW VITESS_MIGRATIONS' queries #7638
- Online DDL: Support for REVERT VITESS_MIGRATION statement #7656
- Online DDL: Declarative Online DDL #7725
VTAdmin
Vitess 10.0 introduces a highly-experimental multi-cluster admin API and web UI, called VTAdmin. Deploying the vtadmin-api and vtadmin-web components is completely opt-in. If you're interested in trying it out and providing early feedback, come find us in #feat-vtadmin in the Vitess slack. Note that VTAdmin relies on the new VtctldServer API, so you must be running the new grpc-vtctld service on your vtctlds in order to use it.
- VTAdmin: Add vtadmin-web build flag for configuring fetch credentials #7414
- VTAdmin: Add
clusterfield to vtadmin-api's /api/gates response #7425 - VTAdmin: Add /api/clusters endpoint to vtadmin-api #7426
- VTAdmin: Add /api/schemas endpoint to vtadmin-api #7432
- VTAdmin: [vtadmin-web] Add routes and simple tables for all entities #7440
- VTAdmin: [vtadmin-web] Set document.title from route components #7450
- VTAdmin: [vtadmin-web] Add DataTable component with URL pagination #7487
- VTAdmin: [vtadmin-api] Add shards to /api/keyspaces response #7453
- VTAdmin: [vtadmin-web] Add replaceQuery + pushQuery to useURLQuery hook #7507
- VTAdmin: [vtadmin-web] An initial pass for tablet filters #7515
- VTAdmin: [vtadmin-web] Add a Select component #7524
- VTAdmin: [vtadmin-api] Add /vtexplain endpoint #7528
- VTAdmin: [vtadmin-api] Reorganize tablet-related functions into vtadmin/cluster/cluster.go #7553
- VTAdmin: Three small bugfixes in Tablets table around stable sort order, display type lookup, and filtering by type #7568
- VTAdmin: [vtadmin] Add GetSchema endpoint #7596
- VTAdmin: [vtadmin/testutil] Add testutil helper to manage the complexity of recursively calling WithTestServer #7601
- VTAdmin: [vtadmin] Add FindSchema route #7610
- VTAdmin: [vtadmin-web] Add simple /schema view with table definition #7615
- VTAdmin: [vtadmin] vschemas api endpoints #7625
- VTAdmin: [vtadmin] Add support for additional service healthchecks in grpcserver #7635
- VTAdmin: [vtadmin] test refactors #7641
- VTAdmin: [vtadmin] propagate error contexts #7642
- VTAdmin: [vtadmin] tracing refactor #7649
- VTAdmin: [vtadmin] GetWorkflow(s) endpoints #7662
- VTAdmin: [vitessdriver|vtadmin] Support Ping in vitessdriver, use in vtadmin to healthcheck connections during Dial #7709
- VTAdmin: [vtadmin] Add to local example #7699
- VTAdmin: [vtexplain] lock #7724
- VTAdmin: [vtadmin] Aggregate schema sizes #7751
- VTAdmin: [vtadmin-web] Add comments + 'options' parameter to API hooks #7754
- VTAdmin: [vtadmin-web] Add common max-width to infrastructure table views #7760
- VTAdmin: [vtadmin-web] Add hooks + skeleton view for workflows #7762
- VTAdmin: [vtadmin-web] Add a hasty filter input to the /schemas view #7779
Other / Tools
- [rulesctl] Implements CLI tool for rule management #7712
Examples / Tutorials
- Source correct shell script in README #7749
Documentation
- Add Severity Labels document #7542
- Remove Google Groups references #7664
- Move some commas around in README.md :) #7671
- Add Andrew Mason to Maintainers List #7757
Build/CI Environment Changes
- Update java build versions to vitess 10.0.0 #7383
- CI: check run analysis to post JSON from file #7386
- Fix Dockerfiles for vtexplain and vtctlclient #7418
- CI: Add descriptive names to vrep shards. Update test generator script #7454
- CI: adding 'go mod tidy' test #7461
- Docker builds vitess/vtctlclient to install curl #7466
- Add VT_BASE_VER to vtexplain/Dockerfile #7467
- Enable -mysql_server_version in vttestserver, and utilize it in vttestserver container images #7474
- [vtctld | tests only] testtmclient refactor #7518
- CI: skip some tests on forked repos #7527
- Workflow to check make sizegen #7535
- Add mysqlctl docker image #7557
- Restore CI workflow shard 26, accidentally dropped #7569
- Update CODEOWNERS #7586
- CI: ci-workflow-gen turn string to array to reduce conflicts #7582
- Add percona-toolkit (for pt-osc/pt-online-schema-change) to the docker/lite images #7603
- CI: Use ubuntu-18.04 in tests #7614
- [vttestserver] Fix to work with sharded keyspaces #7617
- Add tools.go #7517
- Make vttestserver compatible with persistent data directories #7718
- Add vtorc binary for rpm,deb builds #7750
- Fixes bug that prevents creation of logs directory #7761
- [Java] Guava update to 31.1.1 #7764
- make: build vitess as static binaries by default #7795 ← Potentially breaking change
- make: build vitess as static binaries by default (10.0 backport) #7808
- java: prepare java version for release 10.0 #7922
Functionality Neutral Changes
- VTGate: Remove unused key.Destination.IsUnique() #7565
- VTGate: Add information_schema query on prepare statement #7746
- VTGate: Tests for numeric_precision and numeric_scale columns in information_schema #7763
- Disable flaky test until it can be fixed #7623
- Tests: reset stat at the beginning of test #7644
- Cleanup mysql server_test #7645
- vttablet: fix flaky tests #7543
- Removed unused tests for Wordpress installation #7516
- Fix unit test fail after merge #7550
- Add test with NULL input values for vindexes that did not have any. #7552
VtctldServer
As part of an ongoing effort to transition from the VtctlServer gRPC API to the newer VtctldServer gRPC API, we have updated the local example to use the corresponding new vtctldclient to perform InitShardPrimary (formerly, InitShardMaster) operations.
To enable the new VtctldServer in your vtctld components, update the -service_map flag to include grpc-vtctld. You may specify both grpc-vtctl,grpc-vtctld to gracefully transition.
The migration is still underway, but you may begin to transition to the new client for migrated commands. For a full listing, refer either to proto/vtctlservice.proto or consult vtctldclient --help.
# v10.0.0-rc1-mysql80
15, Apr 2021 Source (opens new window)
tag to trigger mysql80 build on dockerhub
# Vitess 10.0.0-rc1
06, Apr 2021 Source (opens new window)
This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components.
The following PRs made changes to behaviors that clients might rely on. They should be reviewed carefully so that client code can be changed in concert with a Vitess release deployment.
Bugs Fixed
VTGate / MySQL compatibility
- Remove printing of ENFORCED word so that statements remain compatible with mysql 5.7 #7458
- Allow any ordering of generic options in column definitions #7459
- Corrects the comment handling in vitess #7581
- Fix regression - should be able to plan subquery on top of subquery #7682
- Nullable Timestamp Column Fix #7740
- VTGate: Fix the error messages in drop, create and alter database commands #7397
- VTGate: Fix information_schema query with system schema in table_schema filter #7430
- VTGate: Fix Set Statement in Tablet when executed with bindvars #7431
- VTGate: Fix for Query Serving when Toposerver is Down #7484
- VTGate: Add necessary bindvars when preparing queries #7493
- VTGate: Show anywhere plan fix to consider default keyspace #7531
- VTGate: Fix table parsing on VSchema generation #7511
- VTGate: Use the emulated MySQL version for special comments #7510
- VTGate: Reset Session for Reserved Connection when the connection id is not found #7539
- VTGate: Healthcheck: update healthy tablets correctly when a stream returns an error or timeout #7732
- VTGate: Fix for reserved connection usage with transaction #7646
- VTGate: Fix MySQL Workbench failure on login with
select current_user()#7705 - VTGate: Constraint names and database names with spaces. #7745
- VTGate: Fix dual table query when system schema is selected database #7734
Other
- VTTablet: Correctly initialize statsTabletTypeCounts during startup #7390
- Backup/Restore: Respect -disable_active_reparents in backup/restore #7576
- Backup/Restore: check disable_active_reparents properly before waiting for position update #7703
Functionality Added or Changed
VTGate / MySQL compatibility / Query Serving
- VTGate: Gen4 Planner: AxB vs BxA #7274
- VTGAte: Gen4 fallback planning #7370
- VTGate: Support for CALL procedures #7287
- VTGate: Set default for @@workload to OLTP #7288
- VTGate: Change @@Version and @@version_comment #7337
- VTGate: Fix VitessAware system variables of type boolean return NULL when MySQL is not involved #7353
- VTGate: Add stats for RowsAffected similar to RowsReturned #7380
- VTGate: Added information_schema_stats_expiry to allowed list of set vars #7435
- VTGate: LFU Cache Implementation #7439
- VTGate: Describe table to route based on table name and qualifier #7445
- VTGate: Olap error message fix #7448
- VTGate: Temporary Table support in unsharded keyspace #7411
- VTGate: Publish table size on schema #7444
- VTGate: Support for caching_sha2_password plugin in mysql/client #6716
- VTGate: Moving Show plan from executor to planbuilder #7475
- VTGate: Adds another case to merge routes for information_schema queries #7504
- VTGate: Add innodb_read_rows as vttablet metric #7520
- VTGate: Adds support for Show variables #7547
- VTGate: gen4: fail unsupported queries #7409
- VTGate: Fix Metadata in SHOW queries #7540
- VTGate: Update AST helper generation #7558
- VTGate: Avoiding addition of redundant unary operators #7579
- VTGate: Optimise AST rewriting #7583
- VTGate: Add Show Status query to vtexplain and make asthelpergen/sizegen quiet #7590
- VTGate: Add support for SELECT ALL #7593
- VTGate: Empty statement error code change in sql parsing #7618
- VTGate: Socket system variable to return vitess mysql socket #7637
- VTGate: Make DROP/CREATE DATABASE pluggable #7381
- VTGate: Allow Select with lock to pass through in vttablet #7584
- VTGate: Fix ordering in SELECT INTO and printing of strings #7655
- VTGate: AST Equals code generator #7672
- VTGate: [tabletserver] More resilient wait for schema changes #7684
- VTGate: Fix flush statement planner #7695
- VTGate: Produce query warnings for using features not supported when sharded #7538
- VTGate: Support for ALTER VITESS_MIGRATION statements #7663
- VTGate: Solve I_S queries using CNF rewriting #7677
- VTGate: System schema queries #7685
- VTGate: Make the AST visitor faster #7701
- VTGate: COM_PREPARE - Single TCP response packet with all MySQL Packets #7713
- VTGate: Replace the database name in result fields only if needed #7714
- VTGate: Split ast_helper into individual gen files #7727
- VTGate: Adds support for ordering on character fields for sharded keyspace queries #7678
- VTGate: Show columns query on system schema #7729
- VTGate: Disallow foreign key constraint on ddl #7780
- VTGate: VTGate: support -enable_online_ddl flag #7694
Testing
- Fuzzing: Add vtctl fuzzer #7605
- Fuzzing: Add more fuzzers #7622
- Fuzzing: Add 3 fuzzers for mysql endpoints #7639
- Fuzzing: Add oss-fuzz build script #7591
- Fuzzing: Add requirement for minimum length of input data #7722
- Fuzzing: Add new mysql fuzzer #7660
- Fuzzing: Add [grpcvtgateconn] fuzzer #7689
- Fuzzing: Make mysql fuzzer more calls during each iteration #7766
Performance
- VTGate: [perf] zero-copy tokenizer #7619
- VTGate: [perf: sqlparser faster formatting #7710
- VTGate :[perf] Cache reserved bind variables in queries #7698
- VTGate: [perf] sqlparser yacc codegen #7669
- VTGate: Making fast AST rewriter faster #7726
- VTGate: Cached Size Implementation #7387
- VTGate: Plan remove mutexes #7468
- LFU Cache Bug Fixes #7479
- [cache] Handle all possible initialization cases #7556
- VTGate: [servenv] provide a global flag for profiling #7496
- VTGate: [vttablet] Benchmarks and two small optimizations #7560
- [pprof]: allow stopping profiling early with a signal #7594
- perf: RPC Serialization #7519
- perf: keyword lookups in the tokenizer #7606
Cluster Management
- [vtctld] Migrate topo management RPCs #7395
- [vtctldclient] Set
SilenceErrorson the root command, so we don't double-log #7404 - [vtctldclient] Command line flags: dashes and underscores synonyms #7406
- Extract the
maxReplPosSearchstruct out totopotools#7420 - Add protoutil package, refactor ISP to use it #7421
- Add
ErrorGroupto package concurrency, use inwaitOnNMinusOneTablets#7429 - [vtctld / wrangler] Extract some reparent methods out to functions for shared use between wrangler and VtctldServer #7434
- [vtctld/wrangler] Extract
EmergencyReparentShardlogic to dedicated struct and add unit tests #7464 - Provide named function for squashing usage errors; start using it #7451
- [concurrency] Add guard against potentially blocking forever in ErrorGroup.Wait() when NumGoroutines is 0 #7463
- Add hook for statsd integration #7417
- [concurrency] Add guard against potentially blocking forever in ErrorGroup.Wait() when NumGoroutines is 0 #7463
- Resilient rebuild keyspace graph check, tablet controls not in
RebuildKeyspaceGraphcommand #7442 - [reparentutil / ERS] confirm at least one replica succeeded to
SetMaster, or fail #7486 - [reparentutil / wrangler] Extract PlannedReparentShard logic from wrangler to PlannedReparenter struct #7501
- Add backup/restore duration stats #7512
- Refresh replicas and rdonly after MigrateServedTypes except on skipRefreshState. #7327
- [eparentutil] ERS should not attempt to WaitForRelayLogsToApply on primary tablets that were not running replication #7523
- [orchestrator] prevent XSS attack via 'orchestrator-msg' params #7526
- [vtctld] Add remaining reparent commands to VtctldServer #7536
- [reparentutil] ERS should not attempt to WaitForRelayLogsToApply on primary tablets that were not running replication #7523
- Shutdown vttablet gracefully if tablet record disappears #7563
- ApplySchema: -skip_preflight #7587
- Table GC: disable binary logging on best effort basis #7588
- Addition of waitSig pprof argument to start recording on USR1 #7616
- Add combine TLS certs feature #7609
- Check error response before attempting to access InitShardPrimary response #7658
- [vtctld] Migrate GetSrvKeyspace as GetSrvKeyspaces in VtctldServer #7680
- [vtctld] Migrate ShardReplicationPositions #7690
- [reparentutil | ERS] Bind status variable to each goroutine in WaitForRelayLogsToApply #7692
- [servenv] Fix var shadowing caused by short variable declaration #7702
- [vtctl|vtctldserver] List/Get Tablets timeouts #7715
- vtctl ApplySchema supports '-request_context' flag #7777
VReplication
- VReplication: vstreamer to throttle on source endpoint #7324
- VReplication: Throttle on target tablet #7364
- VReplication: Throttler: fix to client usage in vreplication and table GC #7422
- VReplication: MoveTables/Reshard add flags to start workflows in a stopped state and to stop workflow once copy is completed #7449
- VReplication: Support for caching_sha2_password plugin in mysql/client #6716
- VReplication: Validate SrvKeyspace during Reshard/SwitchReads #7481
- VReplication: [MoveTables] Refresh SrvVSchema (for Routing Rules) and source tablets (for Blacklisted Tables) on completion #7505
- VReplication : Data migration from another Vitess cluster #7546
- VReplication : [materialize] Add cells and tablet_types parameters #7562
- VReplication: JSON Columns: fix bug where vreplication of update statements were failing #7640
- VReplication: Make the frequency at which heartbeats update the _vt.vreplication table configurable #7659
- VReplication: Error out if binlog compression is turned on #7670
- VReplication: Tablet throttler: support for custom query & threshold #7541
- VStream API: allow aligning streams from different shards to minimize skews across the streams #7626
OnlineDDL
- OnlineDDL: update gh-ost binary to v1.1.1 #7394
- Online DDL via VReplication #7419
- Online DDL: VReplicatoin based mini stress test CI #7492
- OnlineDDL: Revert for VReplication based migrations #7478
- Online DDL: Internal support for eta_seconds #7630
- Online DDL: Support 'SHOW VITESS_MIGRATIONS' queries #7638
- Online DDL: Support for REVERT VITESS_MIGRATION statement #7656
- Online DDL: Declarative Online DDL #7725
VTAdmin
- VTAdmin: Add vtadmin-web build flag for configuring fetch credentials #7414
- VTAdmin: Add
clusterfield to vtadmin-api's /api/gates response #7425 - VTAdmin: Add /api/clusters endpoint to vtadmin-api #7426
- VTAdmin: Add /api/schemas endpoint to vtadmin-api #7432
- VTAdmin: [vtadmin-web] Add routes and simple tables for all entities #7440
- VTAdmin: [vtadmin-web] Set document.title from route components #7450
- VTAdmin: [vtadmin-web] Add DataTable component with URL pagination #7487
- VTAdmin: [vtadmin-api] Add shards to /api/keyspaces response #7453
- VTAdmin: [vtadmin-web] Add replaceQuery + pushQuery to useURLQuery hook #7507
- VTAdmin: [vtadmin-web] An initial pass for tablet filters #7515
- VTAdmin: [vtadmin-web] Add a Select component #7524
- VTAdmin: [vtadmin-api] Add /vtexplain endpoint #7528
- VTAdmin: [vtadmin-api] Reorganize tablet-related functions into vtadmin/cluster/cluster.go #7553
- VTAdmin: Three small bugfixes in Tablets table around stable sort order, display type lookup, and filtering by type #7568
- VTAdmin: [vtadmin] Add GetSchema endpoint #7596
- VTAdmin: [vtadmin/testutil] Add testutil helper to manage the complexity of recursively calling WithTestServer #7601
- VTAdmin: [vtadmin] Add FindSchema route #7610
- VTAdmin: [vtadmin-web] Add simple /schema view with table definition #7615
- VTAdmin: [vtadmin] vschemas api endpoints #7625
- VTAdmin: [vtadmin] Add support for additional service healthchecks in grpcserver #7635
- VTAdmin: [vtadmin] test refactors #7641
- VTAdmin: [vtadmin] propagate error contexts #7642
- VTAdmin: [vtadmin] tracing refactor #7649
- VTAdmin: [vtadmin] GetWorkflow(s) endpoints #7662
- VTAdmin: [vitessdriver|vtadmin] Support Ping in vitessdriver, use in vtadmin to healthcheck connections during Dial #7709
- VTAdmin: [vtadmin] Add to local example #7699
- VTAdmin: vtexplain lock #7724
- VTAdmin: [vtadmin] Aggregate schema sizes #7751
- VTAdmin: [vtadmin-web] Add comments + 'options' parameter to API hooks #7754
- VTAdmin: [vtadmin-web] Add common max-width to infrastructure table views #7760
- VTAdmin: [vtadmin-web] Add hooks + skeleton view for workflows #7762
- VTAdmin: [vtadmin-web] Add a hasty filter input to the /schemas view #7779
Other / Tools
- [rulesctl] Implements CLI tool for rule management #7712
Examples / Tutorials
- Source correct shell script in README #7749
Documentation
- Add Severity Labels document #7542
- Remove Google Groups references #7664
- Move some commas around in README.md :) #7671
- Add Andrew Mason to Maintainers List #7757
Build/CI Environment Changes
- Update java build versions to vitess 10.0.0 #7383
- CI: check run analysis to post JSON from file #7386
- Fix Dockerfiles for vtexplain and vtctlclient #7418
- CI: Add descriptive names to vrep shards. Update test generator script #7454
- CI: adding 'go mod tidy' test #7461
- Docker builds vitess/vtctlclient to install curl #7466
- Add VT_BASE_VER to vtexplain/Dockerfile #7467
- Enable -mysql_server_version in vttestserver, and utilize it in vttestserver container images #7474
- [vtctld | tests only] testtmclient refactor #7518
- CI: skip some tests on forked repos #7527
- Workflow to check make sizegen #7535
- Add mysqlctl docker image #7557
- Restore CI workflow shard 26, accidentally dropped #7569
- Update CODEOWNERS #7586
- CI: ci-workflow-gen turn string to array to reduce conflicts #7582
- Add percona-toolkit (for pt-osc/pt-online-schema-change) to the docker/lite images #7603
- CI: Use ubuntu-18.04 in tests #7614
- [vttestserver] Fix to work with sharded keyspaces #7617
- Add tools.go #7517
- Make vttestserver compatible with persistent data directories #7718
- Add vtorc binary for rpm,deb builds #7750
- Fixes bug that prevents creation of logs directory #7761
- [Java] Guava update to 31.1.1 #7764
Functionality Neutral Changes
- VTGate: Remove unused key.Destination.IsUnique() #7565
- VTGate: Add information_schema query on prepare statement #7746
- VTGate: Tests for numeric_precision and numeric_scale columns in information_schema #7763
- Disable flaky test until it can be fixed #7623
- Tests: reset stat at the beginning of test #7644
- Cleanup mysql server_test #7645
- vttablet: fix flaky tests #7543
- Removed unused tests for Wordpress installation #7516
- Fix unit test fail after merge #7550
- Add test with NULL input values for vindexes that did not have any. #7552
# v0.9.0
30, Jan 2021 Source (opens new window)
Tagging v9.0.0 also as v0.9.0 for godoc/go modules
# Vitess 9.0.0
07, May 2021 Source (opens new window)
This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components.
Incompatible Changes
The following PRs made changes to behaviors that clients might rely on. They should be reviewed carefully so that client code can be changed in concert with a Vitess release deployment.
- The update to golang 1.15 (#7204) might break systems that use TLS certificates with a common name. A fix is documented here (golang/go#40748 (comment))
Vitess 9.0 is not compatible with the previous release of the Vitess Kubernetes Operator (2.2.0). A new version of the Operator (2.3.0) is available that is compatible.
Known Issue(s)
- VReplication errors when a fixed-length binary column is used as the sharding key #8080
Bugs Fixed
VTGate / MySQL compatibility
- Set Global #6957
- Set udv allow more expressions #6964
- Bug which caused the connection to not close in case of error writing an error packet #6977
- Bug fix #7048 for SelectNone in StreamExecute route engine #7050
Other
- Binary PK: fix bug where padding of binary columns was being done incorrectly #6963
- Pad non-fractional part of DECIMAL type #6967
- Bug fix regression in /healthz #7090
- Fix metadata related operation hangs when zk down #7228
- Fix accidentally-broken legacy vtctl output format #7285
Functionality Added or Changed
VTGate / MySQL compatibility
- VTGate: Allow INSERT with all defaults #6969
- VTGate: Allow YEAR column type with length specified #6975
- VTGate: Retry Execute when reserved connection is lost #6983
- VTGate: Use ephemeral buffer when reading rows #6990
- VTGate: Allow time_zone in reserved connection #6998
- VTGate: Improved support for UNION #7007
- VTGate: Add DDL parser support for FULLTEXT indexes. #7001
- VTGate: Extend comparability of EvalResult to support hash codes #7016
- VTGate: Use proto equal method #7017
- VTGate: Fix COM_STMT_EXECUTE packet decode #7020
- VTGate: Adds Planning and Parsing Support for Create Index of MySQL 5.7 #7024
- VTGate: UNION DISTINCT support on vtgate #7029
- VTGate: Improve database ddl plan #7034
- VTGate: Support for hex & shard in vindex query #7044
- VTGate: Use distinct primitive to solve more queries #7047
- VTGate: Route using vindex for composite IN clause #7049
- VTGate: Optimise struct field layout #7052
- VTGate: Refactoring of plan building #7054
- VTGate: Rewrite joins written with the USING construct #6660
- VTGate: Add option to GetSchema to only send the row count and data length over the wire
#6985 - VTGate: Adds Planning and Parsing Support for Create Database of MySQL 5.7 #7068
- VTGate: Make sure to check all GROUP BY columns #7080
- VTGate: Separate sub-query and derived table into different structs #7081
- VTGate: Adds Planning and Parsing Support for Alter Database of MySQL 5.7 #7086
- VTGate: Convert usages of DDL struct to DDLStatement interface #7096
- VTGate: Adds Planning and Parsing Support for Drop Database of MySQL 5.7 #7098
- VTGate: Restore SHOW SCHEMAS support; fixes #7100 #7102
- VTGate: Refactor Code to create a separate struct for CREATE TABLE #7116
- VTGate: Allows for vttestserver and vtcombo to respond to VtGateExecute. #7121
- VTGate: Support for lock and unlock tables #7139
- VTGate: Merge SelectDBA routes when possible #7140
- VTGate: Adds support for all the rails queries using information_schema #7143
- VTGate: Add support for unary expression in order by column #7163
- VTGate: Skip query rewriting for dual table #7164
- VTGate: Refactor Code to create a separate struct for ALTER VSCHEMA #7173
- VTGate: Refactor Show plans #7185
- VTGate: Show privilege support #7194
- VTGate: Planning and Parsing Support for Drop Table, Drop View and Alter View #7178
- VTGate: Cache only dml and select plans #7196
- VTGate: Planning and Parsing Support for Alter Table #7199
- VTGate: Add FindAllShardsInKeyspace to vtctldserver #7201
- VTGate: improve-log: FAILED_PRECONDITION #7215
- VTGate: Planner refactoring #7103
- VTGate: Migrate
vtctlclient InitShardMaster=>vtctldclient InitShardPrimary#7220 - VTGate: Add Planning and Parsing Support for Truncate, Rename, Drop Index and Flush #7242
- VTGate: Fix create table format function to include if not exists #7250
- VTGate: Added default databases when calling 'show databases' #7256
- VTGate : Add Update.AddWhere to mirror Select.AddWhere #7277
- VTGate :Rremoved resolver usage from StreamExecute #7281
- VTGate: Adding a MySQL connection at Vtgate to run queries on it directly in case of testing mode #7291
- VTGate: Added vitess_version as variable #7295
- VTGate: Default to false for system settings to be changed per session at the database connection level #7299
- VTGate: Gen4: Add Limit clause support #7312
- VTGate: Gen4: Handling subquery in query graph #7313
- VTGate: Addition of @@enable_system_settings #7300
- VTGate: Route INFORMATION_SCHEMA queries #6932
- VTGate: Adds Planning and Parsing Support for Create Index of MySQL 5.7 #7024
- VTGate: Log sql which exceeds max memory rows #7055
- VTExplain: Add sequence table support for vtexplain #7186
- VSchema: Support back-quoted names #7073
- Healthcheck: healthy list should be recomputed when a tablet is removed #7176
Set Statement Support
Set statement support has been added in Vitess. There are some system variables which are disabled by default and can be enabled using flag -enable_system_settings on VTGate. These system variables are set on the mysql server. Because they change the mysql session, using them leads to the Vitess connection no longer using the connection pool and forcing dedicated connections.
VReplication
- VReplication: refactored and enhanced support for JSON columns #6829
- VReplication: Don't update tx timestamp on heartbeat #6930
- VReplication E2E Tests: Refactored tests for readability and attempting to fix flakiness #6991
- VRepl/Tablet Picker: improve observability of selected tablet #6999
- VReplication: Handle comment statement type in vstreamer #7092
- VReplication e2e: Fine tuned test to reduce flakiness and added more logging to debug future flakiness #7138
- VReplication: Make relay log size & rows configurable. #6992
- VReplication: New workflows cli UX. Allow reads/writes to be switched independently #7071
- VReplication: DropSources: change table rename logic #7230
- VReplication: MoveTables: delete routing rules and update vschema on Complete and Abort #7234
- VReplication: V2 Workflow Start: wait for streams to start and report errors if any while starting a workflow #7248
- VReplication: Ignore temp tables created by onlineddl #7159
- VReplication V2 Workflows: rename Abort to Cancel #7276
- VReplication DryRun: Report current dry run results for v2 commands #7255
- VReplication: Miscellaneous improvements #7275
- VReplication: Tablet throttle support "/throttle/check-self" available on all tablets #7319
- VStreamer Events: remove preceding zeroes from decimals in Row Events #7297
- Workflow Show: use timeUpdated to calculate vreplication lag #7342
- vtctl: Add missing err checks for VReplication v2 #7361
- VStreamer Field Event: add allowed values for set/enum #6981
- VDiff: lock keyspace while snapshoting, restart target in case of errors #7012
- [vtctld]: fix error state in Workflow Show #6970
- [vtctld] Workflow command: minor fixes #7008
- [vtctl] Add missing err checks for VReplication v2 #7361
VTTablet
- VTTablet: fast and reliable state transitions #7011
- VTTablet: don't shutdown on too many connections #7039
- VTTablet: debug/env page to change variables in real-time #7189
- VTTablet: Adds better errors when there are timeouts in resource pools #7002
- VTTablet: Return to re-using server IDs for binlog connections #6941
- VTTablet: Correctly initialize the TabletType stats #6989
- Backup: Use provided xtrabackup_root_path to find xbstream #7359
- Backup: Use pargzip instead of pgzip for compression. #7037
- Backup: Add s3 server-side encryption and decryption with customer provided key #7088
OnlineDDL
- Online DDL: follow ups in multiple trajectories #6901
- Online DDL: cancel running migrations executed by another tablet #7006
- OnlineDDL: Adding
ddl_strategysession variable #7042 - Online DDL: ddl_strategy session variable and vtctl command line argument #7045
- Online DDL: Removing online ddl query hint from ALTER TABLE #7069
- Online DDL: vtgate -ddl-strategy flag renamed to -ddl_strategy #7074
Automatically retry migration that was interrupted during master failover
Automatically terminate migrations run by a failed tablet - Online DDL:request_context/migration_context #7082
- Online DDL: Support CREATE, DROP statements in ApplySchema and online DDL #7083
- Online DDL: ddl_type column #7097
- OnlineDDL: "cancel-all" command to cancel all pending migrations in keyspace #7099
- OnlineDDL: Support
vtctl OnlineDDL <keyspace> show <context>#7145 - OnlineDDL: Normalizing Online-DDL queries #7153
- Online DDL: ddl_strategy=direct #7172
- Online DDL: Executor database pool size increase #7206
- Online DDL: DROP TABLE translated to RENAME TABLE statement #7221
- Online DDL: Adding @@session_uuid to vtgate; used as 'context' #7263
- Online DDL: ignore errors if extracted gh-ost binary is identical to installed binary #6928
- Online DDL: Table lifecycle: skip time hint for unspecified states #7151
VTadmin
- VTadmin: Initial vtadmin-api, clusters, and service discovery #7187
- VTadmin: The tiniest possible first implementation of vtadmin-web #7218
- VTadmin: Add cluster protos to discovery and vtsql package constructors #7224
- VTadmin: Add static file service discovery implementation #7229
- VTadmin: Query vtadmin-api from vtadmin-web with fetch + react-query #7239
- VTadmin: Add vtctld proxy to vtadmin API, add GetKeyspaces endpoint #7266
- VTadmin: [vtctld] Expose vtctld gRPC port in local Docker example + update VTAdmin README #7306
- VTadmin: Add CSS variables + fonts to VTAdmin #7309
- VTadmin: Add React Router + a skeleton /debug page to VTAdmin #7310
- VTadmin: Add NavRail component #7316
- VTadmin: Add Button + Icon components #7350
- [vtctld]: vtctldclient generator #7238
- [vtctld] Migrate cell getters #7302
- [vtctld] Migrate tablet getters #7311
- [vtctld] Migrate GetSchema #7346
- [vtctld] vtctldclient command pkg #7321
- [vtctld] Add GetSrvVSchema command #7334
- [vtctld] Migrate ListBackups as GetBackups in new vtctld server #7352
Merged - [vtctld] Migrate GetVSchema to VtctldServer #7360
Other
- Fix comment typo #6974
- Fix all occurrences of
fmt.Sprint(x)where x isint#7244 - Fix incorrect comments #7257
- Fix comment for IDPool #7212
- IsInternalOperationTableName: see if a table is used internally by vitess #7104
Examples / Tutorials
- Update demo #7205
- Delete select_commerce_data.sql #7245
- Docker/vttestserver: Add MYSQL_BIND_HOST env #7293
- Examples/operator: fix tags and add vtorc example #7358
- local docker: copy examples/common into /vt/common to match MoveTables user guide #7252
- Update docker-compose examples to take advantage of improvements in Vitess #7009
Documentation
- Vitess Slack Guidelines v1.0 #6961
- Do vschema_customer_sharded.json before create_customer_sharded.sql #7210
- Added readme for the demo example #7226
- Pull Request template: link to contribution guide #7314
Build Environment Changes
- Clean up plan building test cases #7057
- Fix unit test error #6953, #6993
- Fixing the 5.6 builds of vitess/lite #6960
- Pin mariadb to use mariadb-server-10.2 #6966
- Replace vitess:base with vitess:lite images for docker-compose services #7004
- Fix flakey TestParallelRunnerApprovalFirstRunningSecondRunning test #7014
- Allow custom image tags in compose #7043
- Support statsd for vitess #7072
- Add vtctl to make install-local #7125
- Updating Java unit tests for JDK9+ compatibility #7144
- Add Go Version to Bootstrap Image #7182
- Update Vitess v8.0 images #7174
- Fix broken package ref in UBI docker build #7183
- Convert CentOS extra packages installation to yum instead of downloading #7188
- Make docker_local: fix missing mysql_server package #7213
- Add unit test case to improve test coverage for go/sqltypes/result.go #7227
- Update Golang to 1.15 #7204
- Add linter configuration #7247
- Tracking failed check runs #7026
- Github Actions CI Builds: convert matrix strategy for unit and cluster tests to individual tests #7258
- Add Update.AddWhere to mirror Select.AddWhere #7277
- Descriptive names for CI checks #7289
- Testing upgrade path from / downgrade path to v8.0.0 #7294
- Add mysqlctl to docker images #7326
Functionality Neutral Changes
- Healthcheck: add unit test for multi-cell replica configurations #6978
- Adds timeout to checking for tablets. #7106
- Remove deprecated vtctl commands, flags and vttablet rpcs #7115
- Fixes comment to mention the existence of reference tables. #7122
- Updated pull request template to add more clarity #7193
- Redact password #7198
- action_repository: no need for http.Request #7124
- Testing version upgrade/downgrade path from/to 8.0 #7323
- Use
contextfrom Go's standard library #7235
# Vitess 9.0.0-rc1
07, Jan 2021 Source (opens new window)
This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components.
Incompatible Changes
The following PRs made changes to behaviors that clients might rely on. They should be reviewed carefully so that client code can be changed in concert with a Vitess release deployment.
- The update to golang 1.15 might break systems that use TLS certificates with a common name. A fix is documented here (golang/go#40748 (comment))
Bugs Fixed
- Set Global #6957
- Binary PK: fix bug where padding of binary columns was being done incorrectly #6963
- Set udv allow more expressions #6964
- Pad non-fractional part of DECIMAL type #6967
- Bug which caused the connection to not close in case of error writing an error packet #6976
- Bug which caused the connection to not close in case of error writing an error packet #6977
- Bug fix #7048 for SelectNone in StreamExecute route engine #7050
- Bug fix regression in /healthz #7090
- Fix metadata related operation hang when zk down #7228
Functionality Added or Changed
- Vtctld: fix error state in Workflow Show #6970
- Adds better error when there are timeouts in resource pools #7002
- Backup: Use pargzip instead of pgzip for compression. #7037
- Vschema: Support back-quoted names #7073
- IsInternalOperationTableName: see if a table is used internally by vitess #7104
- Log sql which exceeds max memory rows #7055
- Add sequence table support for vtexplain #7186
- Vtctld: vtctldclient generator #7238
VTGate / MySQL compatibility
- VTGate: Allow INSERT with all defaults #6969
- VTGate: Allow YEAR column type with length specified #6975
- VTGate: Retry Execute when reserved connection is lost #6983
- VTGate: Use ephemeral buffer when reading rows #6990
- VTGate: Allow time_zone in reserved connection #6998
- VTGate: Improved support for UNION #7007
- VTGate: Add DDL parser support for FULLTEXT indexes. #7001
- VTGate: Extend comparability of EvalResult to support hash codes #7016
- VTGate: Use proto equal method #7017
- VTGate: Fix COM_STMT_EXECUTE packet decode #7020
- VTGate: Adds Planning and Parsing Support for Create Index of MySQL 5.7 #7024
- VTGate: UNION DISTINCT support on vtgate #7029
- VTGate: Improve database ddl plan #7034
- VTGate: Support for hex & shard in vindex query #7044
- VTGate: Use distinct primitive to solve more queries #7047
- VTGate: Route using vindex for composite IN clause #7049
- VTGate: Optimise struct field layout #7052
- VTGate: Refactoring of plan building #7054
- VTGate: Rewrite joins written with the USING construct #6660
- VTGate: Add option to GetSchema to only send the row count and data length over the wire #6985
- VTGate: Adds Planning and Parsing Support for Create Database of MySQL 5.7 #7068
- VTGate: Make sure to check all GROUP BY columns #7080
- VTGate: Separate sub-query and derived table into different structs #7081
- VTGate: Adds Planning and Parsing Support for Alter Database of MySQL 5.7 #7086
- VTGate: Convert usages of DDL struct to DDLStatement interface #7096
- VTGate: Adds Planning and Parsing Support for Drop Database of MySQL 5.7 #7098
- VTGate: Restore SHOW SCHEMAS support; fixes #7100 #7102
- VTGate: Refactor Code to create a separate struct for CREATE TABLE #7116
- VTGate: Allows for vttestserver and vtcombo to respond to VtGateExecute. #7121
- VTGate: Support for lock and unlock tables #7139
- VTGate: Merge SelectDBA routes when possible #7140
- VTGate: Adds support for all the rails queries using information_schema #7143
- VTGate: Add support for unary expression in order by column #7163
- VTGate: Skip query rewriting for dual table #7164
- VTGate: Refactor Code to create a separate struct for ALTER VSCHEMA #7173
- VTGate: Refactor Show plans #7185
- VTGate: Show privilege support #7194
- VTGate: Planning and Parsing Support for Drop Table, Drop View and Alter View #7178
- VTGate: Cache only dml and select plans #7196
- VTGate: Planning and Parsing Support for Alter Table #7199
- VTGate: Add FindAllShardsInKeyspace to vtctldserver #7201
- VTGate: improve-log: FAILED_PRECONDITION #7215
VReplication
- VReplication: refactored and enhanced support for JSON columns #6829
- VReplication: Don't update tx timestamp on heartbeat #6930
- VReplication E2E Tests: Refactored tests for readability and attempting to fix flakiness #6991
- VRepl/Tablet Picker: improve observability of selected tablet #6999
- VReplication: Handle comment statement type in vstreamer #7092
- VReplication e2e: Fine tuned test to reduce flakiness and added more logging to debug future flakiness #7138
- VReplication: Make relay log size & rows configurable. #6992
- VReplication: New workflows cli UX. Allow reads/writes to be switched independently #7071
- VReplication: DropSources: change table rename logic #7230
- VReplication: MoveTables: delete routing rules and update vschema on Complete and Abort #7234
- VReplication: V2 Workflow Start: wait for streams to start and report errors if any while starting a workflow #7248
VTtablet
- VTtablet: ignore errors if extracted gh-ost binary is identical to installed binary #6928
- VTtablet: fast and reliable state transitions #7011
- VTtablet: don't shutdown on too many connections #7039
- VTtablet: debug/env page to change variables in real-time #7189
VStreamer
- VStreamer Field Event: add allowed values for set/enum #6981
VDiff
- VDiff: lock keyspace while snapshoting, restart target in case of errors #7012
OnlineDDL
- Online DDL: follow ups in multiple trajectories #6901
- Online DDL: cancel running migrations executed by another tablet #7006
- OnlineDDL: Adding
ddl_strategysession variable #7042 - Online DDL: ddl_strategy session variable and vtctl command line argument #7045
- Online DDL: Removing online ddl query hint from ALTER TABLE #7069
- Online DDL: vtgate -ddl-strategy flag renamed to -ddl_strategy #7074
Automatically retry migration that was interrupted during master failover
Automatically terminate migrations run by a failed tablet - Online DDL:request_context/migration_context #7082
- Online DDL: Support CREATE, DROP statements in ApplySchema and online DDL #7083
- Online DDL: ddl_type column #7097
- OnlineDDL: "cancel-all" command to cancel all pending migrations in keyspace #7099
- OnlineDDL: Support
vtctl OnlineDDL <keyspace> show <context>#7145 - OnlineDDL: Normalizing Online-DDL queries #7153
- Online DDL: ddl_strategy=direct #7172
- Online DDL: Executor database pool size increase #7206
- Online DDL: DROP TABLE translated to RENAME TABLE statement #7221
- Online DDL: Adding @@session_uuid to vtgate; used as 'context' #7263
VTadmin
- VTadmin: Initial vtadmin-api, clusters, and service discovery #7187
- VTadmin: The tiniest possible first implementation of vtadmin-web #7218
- VTadmin: Add cluster protos to discovery and vtsql package constructors #7224
- VTadmin: Add static file service discovery implementation #7229
- VTadmin: Query vtadmin-api from vtadmin-web with fetch + react-query #7239
Other
- Route INFORMATION_SCHEMA queries #6932
- Return to re-using server IDs for binlog connections #6941
- Fix comment typo #6974
- Correctly initialize the TabletType stats #6989
- Clean up plan building test cases #7057
- Add s3 server-side encryption and decryption with customer provided key #7088
- Fix all occurrences of
fmt.Sprint(x)where x isint#7244 - local docker: copy examples/common into /vt/common to match MoveTables user guide #7252
- Fix incorrect comments #7257
Examples / Tutorials
Documentation
- Vitess Slack Guidelines v1.0 #6961
- Update docker-compose examples to take advantage of improvements in Vitess #7009
- Adds Planning and Parsing Support for Create Index of MySQL 5.7 #7024
- Do vschema_customer_sharded.json before create_customer_sharded.sql #7210
- Fix comment for IDPool #7212
- Added readme for the demo example #7226
Build Environment Changes
- Fix unit test error #6953, #6993
- Fixing the 5.6 builds of vitess/lite #6960
- Set udv allow more expressions #6964
- Pin mariadb to use mariadb-server-10.2 #6966
- Replace vitess:base with vitess:lite images for docker-compose services #7004
- Fix flakey TestParallelRunnerApprovalFirstRunningSecondRunning test #7014
- Allow custom image tags in compose #7043
- Support statsd for vitess #7072
- Add vtctl to make install-local #7125
- Updating Java unit tests for JDK9+ compatibility #7144
- Add Go Version to Bootstrap Image #7182
- Update Vitess v8.0 images #7174
- Fix broken package ref in UBI docker build #7183
- Convert CentOS extra packages installation to yum instead of downloading #7188
- Make docker_local: fix missing mysql_server package #7213
- Add unit test case to improve test coverage for go/sqltypes/result.go #7227
- Use
contextfrom Go's standard library #7235 - Update Golang to 1.15 #7204
- Add linter configuration #7247
Functionality Neutral Changes
- Healthcheck: add unit test for multi-cell replica configurations #6978
- Healthcheck: healthy list should be recomputed when a tablet is removed #7176
- Vtctld Workflow command: minor fixes #7008
- Adds timeout to checking for tablets. #7106
- Remove deprecated vtctl commands, flags and vttablet rpcs #7115
- Fixes comment to mention the existence of reference tables. #7122
- Updated pull request template to add more clarity #7193
- Redact password #7198
- action_repository: no need for http.Request #7124
- Table lifecycle: skip time hint for unspecified states #7151