Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release of v16.0.0 #12470

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/code_freeze.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ jobs:
steps:
- name: Fail if Code Freeze is enabled
run: |
exit 1
exit 0
76 changes: 61 additions & 15 deletions doc/releasenotes/16_0_0_changelog.md

Large diffs are not rendered by default.

246 changes: 127 additions & 119 deletions doc/releasenotes/16_0_0_release_notes.md

Large diffs are not rendered by default.

31 changes: 22 additions & 9 deletions doc/releasenotes/16_0_0_summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,20 @@ The stats `QueriesProcessed` and `QueriesRouted` are deprecated in v16 as part o
The Prometheus metrics exporter now properly normalizes _all_ label names into their `snake_case` form, as it is idiomatic for Prometheus metrics. Previously, Vitess instances were emitting inconsistent labels for their metrics, with some of them being `CamelCase` and others being `snake_case`.
More information about this change can be found on [Pull Request #12057](https://github.com/vitessio/vitess/pull/12057).

For example, `vtgate_topology_watcher_errors{Operation="GetTablet"} 0` will become `vtgate_topology_watcher_errors{operation="GetTablet"} 0`

Some more of these changes are listed here -

| Previous metric | New Metric |
|-------------------------------------------------------------|-------------------------------------------------------------|
| vtgate_topology_watcher_operations{Operation="AddTablet"} | vtgate_topology_watcher_operations{operation="AddTablet"} |
| vtgate_queries_processed{Plan="Reference"} | vtgate_queries_processed{plan="Reference"} |
| vtgate_queries_routed{Plan="Reference"} | vtgate_queries_routed{plan="Reference"} |
| vttablet_table_allocated_size{Table="corder"} | vttablet_table_allocated_size{table="corder"} |
| vttablet_table_file_size{Table="corder"} | vttablet_table_file_size{table="corder"} |
| vttablet_topology_watcher_errors{Operation="GetTablet"} | vttablet_topology_watcher_errors{operation="GetTablet"} |
| vttablet_topology_watcher_operations{Operation="AddTablet"} | vttablet_topology_watcher_operations{operation="AddTablet"} |

### <a id="repl-manager-removal"/>Replication manager removal and VTOrc becomes mandatory
VTOrc is now a **required** component of Vitess starting from v16. If the users want Vitess to manage replication, then they must run VTOrc.
Replication manager is removed from vttablets since the responsibility of fixing replication lies entirely with VTOrc now.
Expand Down Expand Up @@ -215,7 +229,7 @@ In [Pull Request #11097](https://github.com/vitessio/vitess/pull/11097) we intro

`--query-timeout` allows you to specify a timeout for queries. This timeout is applied to all queries.
It can be overridden by setting the `query_timeout` session variable.
Setting it as command line directive with `QUERY_TIMEOUT_MS` will override other values.
Setting it as query comment directive with `QUERY_TIMEOUT_MS` will override other values.

#### <a id="vrepl-parallel-workers"/>VTTablet: VReplication parallel insert workers --vreplication-parallel-insert-workers

Expand Down Expand Up @@ -280,9 +294,9 @@ $ vtctlclient -- Backup --incremental_from_pos "auto" zone1-0000000102

When the value is `auto`, the position is evaluated as the last successful backup's `Position`. The idea with incremental backups is to create a contiguous (overlaps allowed) sequence of backups that store all changes from last full backup.

The incremental backup copies binary log files. It does not take MySQL down nor places any locks. It does not interrupt traffic on the MySQL server. The incremental backup copies comlete binlog files. It initially rotates binary logs, then copies anything from the requested position and up to the last completed binary log.
The incremental backup copies binary log files. It does not take MySQL down nor places any locks. It does not interrupt traffic on the MySQL server. The incremental backup copies complete binlog files. It initially rotates binary logs, then copies anything from the requested position and up to the last completed binary log.

The backup thus does not necessarily start _exactly_ at the requested position. It starts with the first binary log that has newer entries than requested position. It is OK if the binary logs include transactions prior to the equested position. The restore process will discard any duplicates.
The backup thus does not necessarily start _exactly_ at the requested position. It starts with the first binary log that has newer entries than requested position. It is OK if the binary logs include transactions prior to the requested position. The restore process will discard any duplicates.

Normally, you can expect the backups to be precisely contiguous. Consider an `auto` value: due to the nature of log rotation and the fact we copy complete binlog files, the next incremental backup will start with the first binay log not covered by the previous backup, which in itself copied the one previous binlog file in full. Again, it is completely valid to enter any good position.

Expand Down Expand Up @@ -319,13 +333,12 @@ The `RestoreFromBackup --restore_to_pos` ends with:
- tablet type is `DRAINED`

#### <a id="new-vexplain-command"/>New `vexplain` command
A new `vexplain` command has been introduced with the following syntax -
A new `vexplain` command has been introduced with the following syntax:
```
VEXPLAIN [ALL|QUERIES|PLAN] explainable_stmt
```

This command will help the users look at the plan that vtgate comes up with for the given query (`PLAN` type), see all the queries that are executed on all the MySQL instances (`QUERIES` type),
and see the vtgate plan along with the MySQL explain output for the executed queries (`ALL` type).
This command will help users look at the plan that vtgate comes up with for the given query (`PLAN` type), see all the queries that are executed on all the MySQL instances (`QUERIES` type), and see the vtgate plan along with the MySQL explain output for the executed queries (`ALL` type).

The formats `VTEXPLAIN` and `VITESS` for `EXPLAIN` queries are deprecated, and these newly introduced commands should be used instead.

Expand Down Expand Up @@ -452,11 +465,11 @@ BenchmarkCompressLz4Builtin
This is an internal refactor and should not change the behavior of Vitess as seen by users.

Developers will see a difference though: v16 changes the way we maintain vttablet's sidecar database schema (also referred to as the `_vt`
database). Instead of using the `WithDDL` package, introduced in #6348, we use a declarative approach. Users will now have to update
the desired schema in the `go/vt/sidecardb/schema` directory.
database). Instead of using the `WithDDL` package, introduced in [PR #6348](https://github.com/vitessio/vitess/pull/6348), we use a
declarative approach. Developers will now have to update the desired schema in the `go/vt/sidecardb/schema` directory.

The desired schema is specified, one per table. A new module `sidecardb`, compares this to the existing schema and
performs the required `create` or `alter` to reach it. This is done whenever a primary vttablet starts up.

The sidecar tables `local_metadata` and `shard_metadata` are no longer in use and all references to them are removed as
part of this refactor. There were used previously for Orchestrator support, which has been superseded by `vtorc`.
part of this refactor. They were used previously for Orchestrator support, which has been superseded by `vtorc`.
2 changes: 1 addition & 1 deletion docker/release.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
set -ex

vt_base_version='16.0.0-SNAPSHOT'
vt_base_version='v16.0.0'
debian_versions='buster bullseye'
default_debian_version='bullseye'

Expand Down
20 changes: 10 additions & 10 deletions examples/compose/docker-compose.beginners.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ services:
- "3306"

vtctld:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- "15000:$WEB_PORT"
- "$GRPC_PORT"
Expand All @@ -81,7 +81,7 @@ services:
condition: service_healthy

vtgate:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- "15099:$WEB_PORT"
- "$GRPC_PORT"
Expand Down Expand Up @@ -111,7 +111,7 @@ services:
condition: service_healthy

schemaload:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
command:
- sh
- -c
Expand Down Expand Up @@ -144,12 +144,12 @@ services:
environment:
- KEYSPACES=$KEYSPACE
- GRPC_PORT=15999
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
volumes:
- .:/script

vttablet100:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- "15100:$WEB_PORT"
- "$GRPC_PORT"
Expand Down Expand Up @@ -181,7 +181,7 @@ services:
retries: 15

vttablet101:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- "15101:$WEB_PORT"
- "$GRPC_PORT"
Expand Down Expand Up @@ -213,7 +213,7 @@ services:
retries: 15

vttablet102:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- "15102:$WEB_PORT"
- "$GRPC_PORT"
Expand Down Expand Up @@ -245,7 +245,7 @@ services:
retries: 15

vttablet103:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- "15103:$WEB_PORT"
- "$GRPC_PORT"
Expand Down Expand Up @@ -277,7 +277,7 @@ services:
retries: 15

vtorc:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
command: ["sh", "-c", "/script/vtorc-up.sh"]
depends_on:
- vtctld
Expand Down Expand Up @@ -307,7 +307,7 @@ services:
retries: 15

vreplication:
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
volumes:
- ".:/script"
environment:
Expand Down
26 changes: 13 additions & 13 deletions examples/compose/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ services:
- SCHEMA_FILES=lookup_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
volumes:
- .:/script
schemaload_test_keyspace:
Expand All @@ -101,7 +101,7 @@ services:
- SCHEMA_FILES=test_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
volumes:
- .:/script
set_keyspace_durability_policy:
Expand All @@ -115,7 +115,7 @@ services:
environment:
- KEYSPACES=test_keyspace lookup_keyspace
- GRPC_PORT=15999
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
volumes:
- .:/script
vreplication:
Expand All @@ -129,7 +129,7 @@ services:
- TOPOLOGY_FLAGS=--topo_implementation consul --topo_global_server_address consul1:8500
--topo_global_root vitess/global
- EXTERNAL_DB=0
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
volumes:
- .:/script
vtctld:
Expand All @@ -143,7 +143,7 @@ services:
depends_on:
external_db_host:
condition: service_healthy
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15000:8080
- "15999"
Expand All @@ -160,7 +160,7 @@ services:
--normalize_queries=true '
depends_on:
- vtctld
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15099:8080
- "15999"
Expand All @@ -182,7 +182,7 @@ services:
- EXTERNAL_DB=0
- DB_USER=
- DB_PASS=
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 13000:8080
volumes:
Expand Down Expand Up @@ -217,7 +217,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15101:8080
- "15999"
Expand Down Expand Up @@ -254,7 +254,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15102:8080
- "15999"
Expand Down Expand Up @@ -291,7 +291,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15201:8080
- "15999"
Expand Down Expand Up @@ -328,7 +328,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15202:8080
- "15999"
Expand Down Expand Up @@ -365,7 +365,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15301:8080
- "15999"
Expand Down Expand Up @@ -402,7 +402,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
image: vitess/lite:v16.0.0-rc1
image: vitess/lite:v16.0.0
ports:
- 15302:8080
- "15999"
Expand Down
Loading