Releases: vitessio/vitess
Vitess v23.0.0-rc1
Release of Vitess v23.0.0
Summary
Table of Contents
Major Changes
New default versions
Upgrade to MySQL 8.4
The default major MySQL version used by our vitess/lite:latest image is going from 8.0.40 to 8.4.6.
This change was merged in #18569.
VTGate also advertises MySQL version 8.4.6 by default instead of 8.0.40. If that is not what you are running, you can set the mysql_server_version flag to advertise the desired version.
⚠️ Upgrading to this release with vitess-operator:If you are using the
vitess-operator, considering that we are bumping the MySQL version from8.0.40to8.4.6, you will have to manually upgrade:
- Add
innodb_fast_shutdown=0to your extra cnf in your YAML file.- Apply this file.
- Wait for all the pods to be healthy.
- Then change your YAML file to use the new Docker Images (
vitess/lite:v23.0.0).- Remove
innodb_fast_shutdown=0from your extra cnf in your YAML file.- Apply this file.
This is only needed once when going from the latest
8.0.xto8.4.x. Once you're on8.4.x, it is possible to upgrade and downgrade between8.4.xversions without needing to runinnodb_fast_shutdown=0.
Minor Changes
Deprecations
Metrics
| Component | Metric Name | Notes | Deprecation PR |
|---|---|---|---|
vtorc |
DiscoverInstanceTimings |
Replaced by DiscoveryInstanceTimings |
#18406 |
Deletions
Metrics
| Component | Metric Name | Was Deprecated In | Deprecation PR |
|---|---|---|---|
vtgate |
QueriesProcessed |
v22.0.0 |
#17727 |
vtgate |
QueriesRouted |
v22.0.0 |
#17727 |
vtgate |
QueriesProcessedByTable |
v22.0.0 |
#17727 |
vtgate |
QueriesRoutedByTable |
v22.0.0 |
#17727 |
New Metrics
VTGate
| Name | Dimensions | Description | PR |
|---|---|---|---|
TransactionsProcessed |
Shard, Type |
Counts transactions processed at VTGate by shard distribution and transaction type. | #18171 |
VTOrc
| Name | Dimensions | Description | PR |
|---|---|---|---|
SkippedRecoveries |
RecoveryName, Keyspace, Shard, Reason |
Count of the different skipped recoveries processed. | #17985 |
Topology
--consul_auth_static_file requires 1 or more credentials
The --consul_auth_static_file flag used in several components now requires that 1 or more credentials can be loaded from the provided json file.
VTOrc
Aggregated Discovery Metrics HTTP API removed
VTOrc's undocumented /api/aggregated-discovery-metrics HTTP API endpoint was removed. The list of documented VTOrc APIs can be found here.
We recommend using the standard VTOrc metrics to gather the same metrics. If you find that a metric is missing in standard metrics, please open an issue or PR to address this.
Dynamic control of EmergencyReparentShard-based recoveries
Note: disabling EmergencyReparentShard-based recoveries introduces availability risks; please use with extreme caution! If you rely on this functionality often, for example in automation, this may be signs of an anti-pattern. If so, please open an issue to discuss supporting your use case natively in VTOrc.
The new vtctldclient RPC SetVtorcEmergencyReparent was introduced to allow VTOrc recoveries involving EmergencyReparentShard actions to be disabled on a per-keyspace and/or per-shard basis. Previous to this version, disabling EmergencyReparentShard-based recoveries was only possible globally/per-VTOrc-instance. VTOrc will now consider this keyspace/shard-level setting that is refreshed from the topo on each recovery. The disabled state is determined by first checking if the keyspace, and then the shard state. Removing a keyspace-level override does not remove per-shard overrides.
To provide observability of keyspace/shards with EmergencyReparentShard-based VTOrc recoveries disabled, the EmergencyReparentShardDisabled metric was added. This metric label can be used to create alerting to ensure EmergencyReparentShard-based recoveries are not disabled for an undesired period of time.
Recovery stats to include keyspace/shard
The following recovery-related stats now include labels for keyspaces and shards:
FailedRecoveriesPendingRecoveriesRecoveriesCountSuccessfulRecoveries
Previous to this release, only the recovery "type" was included in labels.
/api/replication-analysis HTTP API deprecation
The /api/replication-analysis HTTP API endpoint is now deprecated and is replaced with /api/detection-analysis, which currently returns the same response format.
VTTablet
API Changes
- Added
RestartReplicationmethod toTabletManagerClientinterface. This new RPC allows stopping and restarting MySQL replication with semi-sync configuration in a single call, providing a convenient alternative to separateStopReplicationandStartReplicationcalls.
CLI Flags
skip-user-metricsflag if enabled, replaces the username label with "UserLabelDisabled" to prevent metric explosion in environments with many unique users.
Managed MySQL configuration defaults to caching-sha2-password
The default authentication plugin for MySQL 8.0.26 and later is now caching_sha2_password instead of mysql_native_password. This change is made because mysql_native_password is deprecated and removed in future MySQL versions. mysql_native_password is still enabled for backwards compatibility.
This change specifically affects the replication user. If you have a user configured with an explicit password, it is recommended to make sure to upgrade this user after upgrading to v23 with a statement like the following:
ALTER USER 'vt_repl'@'%' IDENTIFIED WITH caching_sha2_password BY 'your-existing-password';In future Vitess versions, the mysql_native_password authentication plugin will be disabled for managed MySQL instances.
MySQL timezone environment propagation
Fixed a bug where environment variables like TZ were not propagated from mysqlctl to the mysqld process.
As a result, timezone settings from the environment were previously ignored. Now mysqld correctly inherits environment variables.
Vitess v22.0.1
Release of Vitess v22.0.1
The entire changelog for this release can be found here.
The release includes 19 merged Pull Requests.
Thanks to all our contributors: @GuptaManan100, @app/vitess-bot, @vitess-bot
Vitess v21.0.5
Release of Vitess v21.0.5
The entire changelog for this release can be found here.
The release includes 14 merged Pull Requests.
Thanks to all our contributors: @GuptaManan100, @app/vitess-bot, @frouioui, @harshit-gangal, @systay, @vitess-bot
Vitess v20.0.8
Release of Vitess v20.0.8
The entire changelog for this release can be found here.
The release includes 11 merged Pull Requests.
Thanks to all our contributors: @GuptaManan100, @app/vitess-bot, @frouioui
Vitess v22.0.0
Release of Vitess v22.0.0
Summary
Table of Contents
- Major Changes
- Minor Changes
Major Changes
Deprecations
Metrics
| Component | Metric Name | Deprecation PR |
|---|---|---|
vtgate |
QueriesProcessed |
#17727 |
vtgate |
QueriesRouted |
#17727 |
vtgate |
QueriesProcessedByTable |
#17727 |
vtgate |
QueriesRoutedByTable |
#17727 |
CLI Flags
| Component | Flag Name | Notes | Deprecation PR |
|---|---|---|---|
vttablet |
twopc_enable |
Usage of TwoPC commit will be determined by the transaction_mode set on VTGate via flag or session variable. |
#17279 |
vtgate |
grpc-send-session-in-streaming |
Session will always be sent as part of the response from the StreamExecute RPC. | #17907 |
Deletions
Metrics
| Component | Metric Name | Was Deprecated In | Deletion PR |
|---|---|---|---|
vttablet |
QueryCacheLength |
v21.0.0 |
#16289 |
vttablet |
QueryCacheSize |
v21.0.0 |
#16289 |
vttablet |
QueryCacheCapacity |
v21.0.0 |
#16289 |
vttablet |
QueryCacheEvictions |
v21.0.0 |
#16289 |
vttablet |
QueryCacheHits |
v21.0.0 |
#16289 |
vttablet |
QueryCacheMisses |
v21.0.0 |
#16289 |
CLI Flags
| Component | Flag Name | Was Deprecated In | Deletion PR |
|---|---|---|---|
vttablet |
queryserver-enable-settings-pool |
v21.0.0 |
#16280 |
vttablet |
remove-sharded-auto-increment |
v21.0.0 |
#16860 |
vttablet |
disable_active_reparents |
v20.0.0 |
#14871 |
vtgate, vtcombo, vtctld |
healthcheck-dial-concurrency |
v21.0.0 |
#16378 |
gh-ost and pt-osc Online DDL strategies
Vitess no longer recognizes the gh-ost and pt-osc (pt-online-schema-change) Online DDL strategies. The vitess strategy is the recommended way to make schema changes at scale. mysql and direct strategies continue to be supported.
These vttablet flags have been removed:
--gh-ost-path--pt-osc-path
Attempting to use gh-ost or pt-osc as --ddl-strategy will yield an error:
$ vtctldclient ApplySchema --ddl-strategy="gh-ost" ...
$ vtctldclient ApplySchema --ddl-strategy="pt-osc" ...New Metrics
VTGate
| Name | Dimensions | Description | PR |
|---|---|---|---|
QueryExecutions |
Query, Plan, Tablet |
Number of queries executed. | #17727 |
QueryRoutes |
Query, Plan, Tablet |
Number of vttablets the query was executed on. | #17727 |
QueryExecutionsByTable |
Query, Table |
Queries executed by vtgate, with counts recorded per table. | #17727 |
VStreamsCount |
Keyspace, ShardName, TabletType |
Number of active vstreams. | #17858 |
VStreamsEventsStreamed |
Keyspace, ShardName, TabletType |
Number of events sent across all vstreams. | #17858 |
VStreamsEndedWithErrors |
Keyspace, ShardName, TabletType |
Number of vstreams that ended with errors. | #17858 |
CommitModeTimings |
Mode |
Timing metrics for commit (Single, Multi, TwoPC). | #16939 |
CommitUnresolved |
N/A | Counter for 2PC transaction failures after Prepare. | #16939 |
The work done in #17727 introduces new metrics for queries. Via this work we have deprecated several vtgate metrics, please see the Deprecated Metrics section. Here is an example of how the new metrics are calculated:
Query: select t1.a, t2.b from t1 join t2 on t1.id = t2.id
Shards: 2
Sharding Key: id for both tables
Metrics Published:
1. QueryExecutions – {select, scatter, primary}, 1
2. QueryRoutes – {select, scatter, primary}, 2
3. QueryExecutionsByTable – {select, t1}, 1 and {select, t2}, 1
VTTablet
| Name | Dimensions | Description | PR |
|---|---|---|---|
TableRows |
Table |
Estimated number of rows in the table. | #17570 |
TableClusteredIndexSize |
Table |
Byte size of the clustered index (i.e. row data). | #17570 |
IndexCardinality |
Table, Index |
Estimated number of unique values in the index | #17570 |
IndexBytes |
Table, Index |
Byte size of the index. | #17570 |
UnresolvedTransaction |
ManagerType |
Current number of unresolved transactions. | #16939 |
| ... |
Vitess v22.0.0-rc3
Release of Vitess v22.0.0
Summary
Table of Contents
- Major Changes
- Minor Changes
Major Changes
Deprecations
Metrics
| Component | Metric Name | Deprecation PR |
|---|---|---|
vtgate |
QueriesProcessed |
#17727 |
vtgate |
QueriesRouted |
#17727 |
vtgate |
QueriesProcessedByTable |
#17727 |
vtgate |
QueriesRoutedByTable |
#17727 |
CLI Flags
| Component | Flag Name | Notes | Deprecation PR |
|---|---|---|---|
vttablet |
twopc_enable |
Usage of TwoPC commit will be determined by the transaction_mode set on VTGate via flag or session variable. |
#17279 |
vtgate |
grpc-send-session-in-streaming |
Session will always be sent as part of the response from the StreamExecute RPC. | #17907 |
Deletions
Metrics
| Component | Metric Name | Was Deprecated In | Deletion PR |
|---|---|---|---|
vttablet |
QueryCacheLength |
v21.0.0 |
#16289 |
vttablet |
QueryCacheSize |
v21.0.0 |
#16289 |
vttablet |
QueryCacheCapacity |
v21.0.0 |
#16289 |
vttablet |
QueryCacheEvictions |
v21.0.0 |
#16289 |
vttablet |
QueryCacheHits |
v21.0.0 |
#16289 |
vttablet |
QueryCacheMisses |
v21.0.0 |
#16289 |
CLI Flags
| Component | Flag Name | Was Deprecated In | Deletion PR |
|---|---|---|---|
vttablet |
queryserver-enable-settings-pool |
v21.0.0 |
#16280 |
vttablet |
remove-sharded-auto-increment |
v21.0.0 |
#16860 |
vttablet |
disable_active_reparents |
v20.0.0 |
#14871 |
vtgate, vtcombo, vtctld |
healthcheck-dial-concurrency |
v21.0.0 |
#16378 |
gh-ost and pt-osc Online DDL strategies
Vitess no longer recognizes the gh-ost and pt-osc (pt-online-schema-change) Online DDL strategies. The vitess strategy is the recommended way to make schema changes at scale. mysql and direct strategies continue to be supported.
These vttablet flags have been removed:
--gh-ost-path--pt-osc-path
Attempting to use gh-ost or pt-osc as --ddl-strategy will yield an error:
$ vtctldclient ApplySchema --ddl-strategy="gh-ost" ...
$ vtctldclient ApplySchema --ddl-strategy="pt-osc" ...New Metrics
VTGate
| Name | Dimensions | Description | PR |
|---|---|---|---|
QueryExecutions |
Query, Plan, Tablet |
Number of queries executed. | #17727 |
QueryRoutes |
Query, Plan, Tablet |
Number of vttablets the query was executed on. | #17727 |
QueryExecutionsByTable |
Query, Table |
Queries executed by vtgate, with counts recorded per table. | #17727 |
VStreamsCount |
Keyspace, ShardName, TabletType |
Number of active vstreams. | #17858 |
VStreamsEventsStreamed |
Keyspace, ShardName, TabletType |
Number of events sent across all vstreams. | #17858 |
VStreamsEndedWithErrors |
Keyspace, ShardName, TabletType |
Number of vstreams that ended with errors. | #17858 |
CommitModeTimings |
Mode |
Timing metrics for commit (Single, Multi, TwoPC). | #16939 |
CommitUnresolved |
N/A | Counter for 2PC transaction failures after Prepare. | #16939 |
The work done in #17727 introduces new metrics for queries. Via this work we have deprecated several vtgate metrics, please see the Deprecated Metrics section. Here is an example of how the new metrics are calculated:
Query: select t1.a, t2.b from t1 join t2 on t1.id = t2.id
Shards: 2
Sharding Key: id for both tables
Metrics Published:
1. QueryExecutions – {select, scatter, primary}, 1
2. QueryRoutes – {select, scatter, primary}, 2
3. QueryExecutionsByTable – {select, t1}, 1 and {select, t2}, 1
VTTablet
| Name | Dimensions | Description | PR |
|---|---|---|---|
TableRows |
Table |
Estimated number of rows in the table. | #17570 |
TableClusteredIndexSize |
Table |
Byte size of the clustered index (i.e. row data). | #17570 |
IndexCardinality |
Table, Index |
Estimated number of unique values in the index | #17570 |
IndexBytes |
Table, Index |
Byte size of the index. | #17570 |
UnresolvedTransaction |
ManagerType |
Current number of unresolved transactions. | #16939 |
| ... |
Vitess v22.0.0-rc2
Release of Vitess v22.0.0
Summary
Table of Contents
- Major Changes
- Minor Changes
Major Changes
Deprecations
Metrics
| Component | Metric Name | Deprecation PR |
|---|---|---|
vtgate |
QueriesProcessed |
#17727 |
vtgate |
QueriesRouted |
#17727 |
vtgate |
QueriesProcessedByTable |
#17727 |
vtgate |
QueriesRoutedByTable |
#17727 |
CLI Flags
| Component | Flag Name | Notes | Deprecation PR |
|---|---|---|---|
vttablet |
twopc_enable |
Usage of TwoPC commit will be determined by the transaction_mode set on VTGate via flag or session variable. |
#17279 |
vtgate |
grpc-send-session-in-streaming |
Session will be sent as part of response on StreamExecute API call. | #17907 |
Deletions
Metrics
| Component | Metric Name | Was Deprecated In | Deprecation PR |
|---|---|---|---|
vttablet |
QueryCacheLength |
v21.0.0 |
#16289 |
vttablet |
QueryCacheSize |
v21.0.0 |
#16289 |
vttablet |
QueryCacheCapacity |
v21.0.0 |
#16289 |
vttablet |
QueryCacheEvictions |
v21.0.0 |
#16289 |
vttablet |
QueryCacheHits |
v21.0.0 |
#16289 |
vttablet |
QueryCacheMisses |
v21.0.0 |
#16289 |
CLI Flags
| Component | Flag Name | Was Deprecated In | Deprecation PR |
|---|---|---|---|
vttablet |
queryserver-enable-settings-pool |
v21.0.0 |
#16280 |
vttablet |
remove-sharded-auto-increment |
v21.0.0 |
#16860 |
vttablet |
disable_active_reparents |
v20.0.0 |
#14871 |
vtgate, vtcombo, vtctld |
healthcheck-dial-concurrency |
v21.0.0 |
#16378 |
gh-ost and pt-osc Online DDL strategies
Vitess no longer recognizes the gh-ost and pt-osc (pt-online-schema-change) Online DDL strategies. The vitess strategy is the recommended way to make schema changes at scale. mysql and direct strategies continue to be supported.
These vttablet flags have been removed:
--gh-ost-path--pt-osc-path
The use of gh-ost and pt-osc as strategies as follows, yields an error:
$ vtctldclient ApplySchema --ddl-strategy="gh-ost" ...
$ vtctldclient ApplySchema --ddl-strategy="pt-osc" ...New Metrics
VTGate
| Name | Dimensions | Description | PR |
|---|---|---|---|
QueryExecutions |
Query, Plan, Tablet |
Number of queries executed. | #17727 |
QueryRoutes |
Query, Plan, Tablet |
Number of vttablets the query was executed on. | #17727 |
QueryExecutionsByTable |
Query, Table |
Queries executed at vtgate, with counts recorded per table. | #17727 |
VStreamsCount |
Keyspace, ShardName, TabletType |
Number of active vstream. | #17858 |
VStreamsEventsStreamed |
Keyspace, ShardName, TabletType |
Number of events sent across all vstreams. | #17858 |
VStreamsEndedWithErrors |
Keyspace, ShardName, TabletType |
Number of vstreams that ended with errors. | #17858 |
CommitModeTimings |
Mode |
Timing metrics for commit (Single, Multi, TwoPC). | #16939 |
CommitUnresolved |
N/A | Counter for failure after Prepare. | #16939 |
The work done in #17727 introduces new metrics for queries. Via this work we have deprecated several vtgate metrics, please see the Deprecated Metrics section. Here is an example on how to use them:
Query: select t1.a, t2.b from t1 join t2 on t1.id = t2.id
Shards: 2
Sharding Key: id for both tables
Metrics Published:
1. QueryExecutions – {select, scatter, primary}, 1
2. QueryRoutes – {select, scatter, primary}, 2
3. QueryExecutionsByTable – {select, t1}, 1 and {select, t2}, 1
VTTablet
| Name | Dimensions | Description | PR |
|---|---|---|---|
TableRows |
Table |
Estimated number of rows in the table. | #17570 |
TableClusteredIndexSize |
Table |
Byte size of the clustered index (i.e. row data). | #17570 |
IndexCardinality |
Table, Index |
Estimated number of unique values in the index | #17570 |
IndexBytes |
Table, Index |
Byte size of the index. | #17570 |
UnresolvedTransaction |
ManagerType |
Number of events sent across all vstreams. | #16939 |
CommitPreparedFail |
`... |
Vitess v21.0.4
Release of Vitess v21.0.4
The entire changelog for this release can be found here.
The release includes 35 merged Pull Requests.
Thanks to all our contributors: @app/vitess-bot, @dbussink, @frouioui, @harshit-gangal, @mattlord, @systay, @vitess-bot
Vitess v20.0.7
Release of Vitess v20.0.7
The entire changelog for this release can be found here.
The release includes 27 merged Pull Requests.
Thanks to all our contributors: @app/vitess-bot, @dbussink, @harshit-gangal, @systay, @vitess-bot
Vitess v22.0.0-rc1
Release of Vitess v22.0.0
Summary
Table of Contents
- Major Changes
- Minor Changes
Major Changes
Deprecations
Metrics
| Component | Metric Name | Deprecation PR |
|---|---|---|
vtgate |
QueriesProcessed |
#17727 |
vtgate |
QueriesRouted |
#17727 |
vtgate |
QueriesProcessedByTable |
#17727 |
vtgate |
QueriesRoutedByTable |
#17727 |
CLI Flags
| Component | Flag Name | Notes | Deprecation PR |
|---|---|---|---|
vttablet |
twopc_enable |
Usage of TwoPC commit will be determined by the transaction_mode set on VTGate via flag or session variable. |
#17279 |
vtgate |
grpc-send-session-in-streaming |
Session will be sent as part of response on StreamExecute API call. | #17907 |
Deletions
Metrics
| Component | Metric Name | Was Deprecated In | Deprecation PR |
|---|---|---|---|
vttablet |
QueryCacheLength |
v21.0.0 |
#16289 |
vttablet |
QueryCacheSize |
v21.0.0 |
#16289 |
vttablet |
QueryCacheCapacity |
v21.0.0 |
#16289 |
vttablet |
QueryCacheEvictions |
v21.0.0 |
#16289 |
vttablet |
QueryCacheHits |
v21.0.0 |
#16289 |
vttablet |
QueryCacheMisses |
v21.0.0 |
#16289 |
CLI Flags
| Component | Flag Name | Was Deprecated In | Deprecation PR |
|---|---|---|---|
vttablet |
queryserver-enable-settings-pool |
v21.0.0 |
#16280 |
vttablet |
remove-sharded-auto-increment |
v21.0.0 |
#16860 |
vttablet |
disable_active_reparents |
v20.0.0 |
#14871 |
vtgate, vtcombo, vtctld |
healthcheck-dial-concurrency |
v21.0.0 |
#16378 |
gh-ost and pt-osc Online DDL strategies
Vitess no longer recognizes the gh-ost and pt-osc (pt-online-schema-change) Online DDL strategies. The vitess strategy is the recommended way to make schema changes at scale. mysql and direct strategies continue to be supported.
These vttablet flags have been removed:
--gh-ost-path--pt-osc-path
The use of gh-ost and pt-osc as strategies as follows, yields an error:
$ vtctldclient ApplySchema --ddl-strategy="gh-ost" ...
$ vtctldclient ApplySchema --ddl-strategy="pt-osc" ...New Metrics
VTGate
| Name | Dimensions | Description | PR |
|---|---|---|---|
QueryExecutions |
Query, Plan, Tablet |
Number of queries executed. | #17727 |
QueryRoutes |
Query, Plan, Tablet |
Number of vttablets the query was executed on. | #17727 |
QueryExecutionsByTable |
Query, Table |
Queries executed at vtgate, with counts recorded per table. | #17727 |
VStreamsCount |
Keyspace, ShardName, TabletType |
Number of active vstream. | #17858 |
VStreamsEventsStreamed |
Keyspace, ShardName, TabletType |
Number of events sent across all vstreams. | #17858 |
VStreamsEndedWithErrors |
Keyspace, ShardName, TabletType |
Number of vstreams that ended with errors. | #17858 |
CommitModeTimings |
Mode |
Timing metrics for commit (Single, Multi, TwoPC). | #16939 |
CommitUnresolved |
N/A | Counter for failure after Prepare. | #16939 |
The work done in #17727 introduces new metrics for queries. Via this work we have deprecated several vtgate metrics, please see the Deprecated Metrics section. Here is an example on how to use them:
Query: select t1.a, t2.b from t1 join t2 on t1.id = t2.id
Shards: 2
Sharding Key: id for both tables
Metrics Published:
1. QueryExecutions – {select, scatter, primary}, 1
2. QueryRoutes – {select, scatter, primary}, 2
3. QueryExecutionsByTable – {select, t1}, 1 and {select, t2}, 1
VTTablet
| Name | Dimensions | Description | PR |
|---|---|---|---|
TableRows |
Table |
Estimated number of rows in the table. | #17570 |
TableClusteredIndexSize |
Table |
Byte size of the clustered index (i.e. row data). | #17570 |
IndexCardinality |
Table, Index |
Estimated number of unique values in the index | #17570 |
IndexBytes |
Table, Index |
Byte size of the index. | #17570 |
UnresolvedTransaction |
ManagerType |
Number of events sent across all vstreams. | #16939 |
CommitPreparedFail |
FailureType |
Number of vstreams that ended with errors. | [#16939](https://github.com/vitessio/vit... |