diff --git a/.github/workflows/code_freeze.yml b/.github/workflows/code_freeze.yml
index 1bb74feee50..efe1d6e8856 100644
--- a/.github/workflows/code_freeze.yml
+++ b/.github/workflows/code_freeze.yml
@@ -9,4 +9,4 @@ jobs:
steps:
- name: Fail if Code Freeze is enabled
run: |
- exit 1
+ exit 0
diff --git a/doc/releasenotes/16_0_0_changelog.md b/doc/releasenotes/16_0_0_changelog.md
new file mode 100644
index 00000000000..97190048243
--- /dev/null
+++ b/doc/releasenotes/16_0_0_changelog.md
@@ -0,0 +1,403 @@
+# Changelog of Vitess v16.0.0-rc1
+
+### Announcement
+#### Governance
+ * Move inactive maintainers to "Past" section, change Areas to include more active maintainers [#11744](https://github.com/vitessio/vitess/pull/11744)
+ * add frances to maintainers [#11865](https://github.com/vitessio/vitess/pull/11865)
+ * add Arthur to the maintainers file [#11937](https://github.com/vitessio/vitess/pull/11937)
+#### Query Serving
+ * deprecate V3 planner [#11635](https://github.com/vitessio/vitess/pull/11635)
+#### VTAdmin
+ * [vtadmin] deprecated vtexplain [#12163](https://github.com/vitessio/vitess/pull/12163)
+### Bug fixes
+#### Backup and Restore
+ * Detect redo log location dynamically based on presence [#11555](https://github.com/vitessio/vitess/pull/11555)
+ * [main] mysqlctl: flags should be added to vtbackup (#12048) [#12060](https://github.com/vitessio/vitess/pull/12060)
+#### Build/CI
+ * Fix the script `check_make_sizegen` [#11465](https://github.com/vitessio/vitess/pull/11465)
+ * Skip `TestComparisonSemantics` test [#11474](https://github.com/vitessio/vitess/pull/11474)
+ * Docker Image Context Fix [#11628](https://github.com/vitessio/vitess/pull/11628)
+ * Addition of a CI tool to detect dead links in test/config.json [#11668](https://github.com/vitessio/vitess/pull/11668)
+ * Fix files changes filtering in CI [#11714](https://github.com/vitessio/vitess/pull/11714)
+ * Fix `codeql` workflow timeout issue [#11760](https://github.com/vitessio/vitess/pull/11760)
+ * Trigger OnlineDDL workflow when test data changes [#11827](https://github.com/vitessio/vitess/pull/11827)
+#### Cluster management
+ * BugFix: Errant GTID detection for a single replica [#12024](https://github.com/vitessio/vitess/pull/12024)
+ * BugFix: Fix race in `IsFlagProvided` [#12042](https://github.com/vitessio/vitess/pull/12042)
+#### General
+ * [main] Stats Flags: include stats flags in the correct binaries (#11450) [#11453](https://github.com/vitessio/vitess/pull/11453)
+ * Test flags: Update logic for parsing test flags to run unit tests within GoLand and to parse test flags in vtgate to allow running unit tests [#11551](https://github.com/vitessio/vitess/pull/11551)
+ * Fix missing flag usage for vault credentials flags [#11582](https://github.com/vitessio/vitess/pull/11582)
+ * fix vdiff release notes [#11595](https://github.com/vitessio/vitess/pull/11595)
+#### Observability
+ * stats/prometheus: normalize labels for single-label implementations [#12057](https://github.com/vitessio/vitess/pull/12057)
+#### Online DDL
+ * Parse binlog variable length encoded columns [#11871](https://github.com/vitessio/vitess/pull/11871)
+#### Operator
+ * [main] Increase the memory limit of the vitess-operator (#11548) [#11550](https://github.com/vitessio/vitess/pull/11550)
+ * Fix rbac config in the vtop example [#12034](https://github.com/vitessio/vitess/pull/12034)
+#### Query Serving
+ * Fix query list override issue on mysql restart [#11309](https://github.com/vitessio/vitess/pull/11309)
+ * make MySQL56-flavor schema queries forward-compatible [#11323](https://github.com/vitessio/vitess/pull/11323)
+ * Plan order by `COUNT(X)` [#11420](https://github.com/vitessio/vitess/pull/11420)
+ * Fix #11455 - skip vindex operations for `DELETE` statements against unsharded tables [#11461](https://github.com/vitessio/vitess/pull/11461)
+ * Fix aggregation end-to-end test PRIMARY KEY [#11473](https://github.com/vitessio/vitess/pull/11473)
+ * collations: fix coercion semantics according to 8.0.31 changes [#11487](https://github.com/vitessio/vitess/pull/11487)
+ * fix: reserve connection to follow query timeout when outside of transaction [#11490](https://github.com/vitessio/vitess/pull/11490)
+ * [main] bug fix: using self-referencing columns in HAVING should not overflow (#11499) [#11504](https://github.com/vitessio/vitess/pull/11504)
+ * Fix `HAVING` rewriting made in #11306 [#11515](https://github.com/vitessio/vitess/pull/11515)
+ * fix: fail over reconnect in stream execution for connection with transaction [#11517](https://github.com/vitessio/vitess/pull/11517)
+ * [15.0] Fix: concatenate engine in transaction [#11534](https://github.com/vitessio/vitess/pull/11534)
+ * [main] Redact bind variables in mysql errors (#11540) [#11545](https://github.com/vitessio/vitess/pull/11545)
+ * Fix ordering when error happens during stream setup [#11592](https://github.com/vitessio/vitess/pull/11592)
+ * Do not multiply `AggregateRandom` in `JOIN`s [#11633](https://github.com/vitessio/vitess/pull/11633)
+ * [bugfix] Allow VTExplain to handle shards that are not active during resharding [#11640](https://github.com/vitessio/vitess/pull/11640)
+ * Fix generating invalid alter table for comments [#11645](https://github.com/vitessio/vitess/pull/11645)
+ * sqltypes: handle leading zeroes [#11650](https://github.com/vitessio/vitess/pull/11650)
+ * Send errors in stream instead of a grpc error from streaming rpcs when transaction or reserved connection is acquired [#11656](https://github.com/vitessio/vitess/pull/11656)
+ * schemadiff: normalize index option value (string) [#11675](https://github.com/vitessio/vitess/pull/11675)
+ * improve handling of ORDER BY/HAVING rewriting [#11691](https://github.com/vitessio/vitess/pull/11691)
+ * query timeout hints in unsharded cases [#11709](https://github.com/vitessio/vitess/pull/11709)
+ * Online DDL: adding error check; more verbose error messages [#11789](https://github.com/vitessio/vitess/pull/11789)
+ * Accept no more data in session state change as ok [#11796](https://github.com/vitessio/vitess/pull/11796)
+ * Fix: return allowed transaction isolation level value on select query [#11804](https://github.com/vitessio/vitess/pull/11804)
+ * semantics: Use a BitSet [#11819](https://github.com/vitessio/vitess/pull/11819)
+ * BugFix: Escaping Percentage and Underscore require special handling [#11823](https://github.com/vitessio/vitess/pull/11823)
+ * Simplify recursive data structure in CFC Vindex [#11843](https://github.com/vitessio/vitess/pull/11843)
+ * Fix MySQL56 GTID parsing when SID/UUID repeats [#11888](https://github.com/vitessio/vitess/pull/11888)
+ * Online DDL: fix 'vtctlclient OnlineDDL' template queries [#11889](https://github.com/vitessio/vitess/pull/11889)
+ * Fix CheckMySQL by setting the correct wanted state [#11895](https://github.com/vitessio/vitess/pull/11895)
+ * Onlineddl: formalize "immediate operations", respect `--postpone-completion` strategy flag [#11910](https://github.com/vitessio/vitess/pull/11910)
+ * bugfix: allow predicates without dependencies with derived tables to be handled correctly [#11911](https://github.com/vitessio/vitess/pull/11911)
+ * Online DDL: ensure message is valid `utf8` in `updateMigrationMessage()` [#11914](https://github.com/vitessio/vitess/pull/11914)
+ * Fix sending a ServerLost error when reading a packet fails [#11920](https://github.com/vitessio/vitess/pull/11920)
+ * only expand when we have full information [#11998](https://github.com/vitessio/vitess/pull/11998)
+ * Remove unnecessary logging [#12000](https://github.com/vitessio/vitess/pull/12000)
+ * Fix parsing and normalization of floating point types [#12009](https://github.com/vitessio/vitess/pull/12009)
+ * OnlineDDL: scheduleNextMigration() to only read reviewed migrations [#12014](https://github.com/vitessio/vitess/pull/12014)
+ * Keywords must be unique and can't be reused [#12044](https://github.com/vitessio/vitess/pull/12044)
+ * Fix: Date math with Interval keyword [#12082](https://github.com/vitessio/vitess/pull/12082)
+ * OnlineDDL: support integer-to-enum conversion in `vitess` migrations [#12098](https://github.com/vitessio/vitess/pull/12098)
+ * Keep the correct case for the charset for canonical string [#12105](https://github.com/vitessio/vitess/pull/12105)
+ * BugFix: Cast expression translation by evaluation engine [#12111](https://github.com/vitessio/vitess/pull/12111)
+ * [Gen4] Fix lookup vindexes with `autocommit` enabled [#12172](https://github.com/vitessio/vitess/pull/12172)
+ * handle system databases other that information_schema correctly [#12175](https://github.com/vitessio/vitess/pull/12175)
+ * VTGate: Ensure HealthCheck Cache Secondary Maps Stay in Sync With Authoritative Map on Tablet Delete [#12178](https://github.com/vitessio/vitess/pull/12178)
+ * schemadiff: fix scenario where no tables exist in schema and with just views reading from DUAL [#12189](https://github.com/vitessio/vitess/pull/12189)
+ * Fix parsing of bitnum values larger than 64 bit [#12191](https://github.com/vitessio/vitess/pull/12191)
+ * Online DDL: fix deadlock by releasing mutex before calling callback [#12211](https://github.com/vitessio/vitess/pull/12211)
+#### VReplication
+ * VReplication: escape identifiers when renaming source tables [#11670](https://github.com/vitessio/vitess/pull/11670)
+ * VReplication: Prevent Orphaned VDiff2 Jobs [#11768](https://github.com/vitessio/vitess/pull/11768)
+ * VDiff2: Properly Apply --only_pks Report Flag [#12025](https://github.com/vitessio/vitess/pull/12025)
+ * VReplication: Improve Error/Status Reporting [#12052](https://github.com/vitessio/vitess/pull/12052)
+ * VReplication: Propagate Binlog Stream Errors [#12095](https://github.com/vitessio/vitess/pull/12095)
+#### VTorc
+ * Fix VTOrc holding locks after shutdown [#11442](https://github.com/vitessio/vitess/pull/11442)
+ * [15.0] Fix VTOrc to handle multiple failures [#11489](https://github.com/vitessio/vitess/pull/11489)
+ * VTOrc running PRS when database_instance empty bug fix. [#12019](https://github.com/vitessio/vitess/pull/12019)
+ * Fix: VTOrc forgetting old instances [#12089](https://github.com/vitessio/vitess/pull/12089)
+ * Fix insert query of blocked_recovery table in VTOrc [#12091](https://github.com/vitessio/vitess/pull/12091)
+#### vtctl
+ * Switch ApplySchema `--sql` argument to be `StringArray` instead of `StringSlice` [#11790](https://github.com/vitessio/vitess/pull/11790)
+#### vtexplain
+ * Use Gen4 as the default planner version for VTExplain [#12021](https://github.com/vitessio/vitess/pull/12021)
+#### vttestserver
+ * Fix vttestserver run script defaults [#12004](https://github.com/vitessio/vitess/pull/12004)
+ * Add missing backslash to run.sh script [#12033](https://github.com/vitessio/vitess/pull/12033)
+### CI/Build
+#### Backup and Restore
+ * docker/lite: +zstd dep [#11997](https://github.com/vitessio/vitess/pull/11997)
+#### Build/CI
+ * unit test: use require and assert [#11252](https://github.com/vitessio/vitess/pull/11252)
+ * Skip CI with the `Skip CI` label [#11514](https://github.com/vitessio/vitess/pull/11514)
+ * Update GitHub Actions workflows to latest versions [#11525](https://github.com/vitessio/vitess/pull/11525)
+ * Removing SharedPitr_tls and Backup_transfrom test from CI [#11611](https://github.com/vitessio/vitess/pull/11611)
+ * Add automation to change vitess version in the docker-release script [#11682](https://github.com/vitessio/vitess/pull/11682)
+ * Fix two additional flaky test sources in endtoend tests [#11743](https://github.com/vitessio/vitess/pull/11743)
+ * Update latest protobuf [#11782](https://github.com/vitessio/vitess/pull/11782)
+ * Update test runners to run all tests including outside package [#11787](https://github.com/vitessio/vitess/pull/11787)
+ * Update to latest etcd release [#11791](https://github.com/vitessio/vitess/pull/11791)
+ * Migrate to GitHub OIDC based auth for Launchable [#11808](https://github.com/vitessio/vitess/pull/11808)
+ * Fix the golangci-lint config [#11812](https://github.com/vitessio/vitess/pull/11812)
+ * Add instructions on how to fix a self-hosted runner running out of disk space [#11839](https://github.com/vitessio/vitess/pull/11839)
+ * Fix deprecated usage of set-output [#11844](https://github.com/vitessio/vitess/pull/11844)
+ * update golangci-lint to 1.50.1 [#11873](https://github.com/vitessio/vitess/pull/11873)
+ * CODEOWNERS: Add vrepl team members for vtgate vstream and tablet picker [#11950](https://github.com/vitessio/vitess/pull/11950)
+ * Upgrade all the CI runners to Ubuntu 22.04 [#11985](https://github.com/vitessio/vitess/pull/11985)
+ * Add lauchable to unit tests as well and remove OIDC [#12031](https://github.com/vitessio/vitess/pull/12031)
+ * consolidating OnlineDDL 'declarative' tests into 'scheduler' tests: part 1 [#12061](https://github.com/vitessio/vitess/pull/12061)
+ * OnlineDDL CI: remove 'revertible' tests (part 2) [#12192](https://github.com/vitessio/vitess/pull/12192)
+ * Update vtadmin dependencies [#12201](https://github.com/vitessio/vitess/pull/12201)
+ * Update Go dependencies [#12215](https://github.com/vitessio/vitess/pull/12215)
+#### Cluster management
+ * Endtoend cluster improvements [#11859](https://github.com/vitessio/vitess/pull/11859)
+ * CI, tabletmanager throttler topo tests: polling until status received [#12107](https://github.com/vitessio/vitess/pull/12107)
+#### General
+ * [deps] go get golang.org/x/text && go mod tidy [#11466](https://github.com/vitessio/vitess/pull/11466)
+ * Upgrade to `go1.19.3` [#11655](https://github.com/vitessio/vitess/pull/11655)
+ * Code freeze of release-16.0 [#12232](https://github.com/vitessio/vitess/pull/12232)
+#### Governance
+ * codeowners: have at least two for almost every package [#11639](https://github.com/vitessio/vitess/pull/11639)
+ * added code owners for go.mod and go.sum files [#11711](https://github.com/vitessio/vitess/pull/11711)
+ * Add more codeowners to the `/test` directory [#11762](https://github.com/vitessio/vitess/pull/11762)
+#### Query Serving
+ * Consistent sorting in Online DDL Vrepl suite test [#11821](https://github.com/vitessio/vitess/pull/11821)
+ * Flakes: Properly Test HealthCheck Cache Response Handling [#12226](https://github.com/vitessio/vitess/pull/12226)
+#### TabletManager
+ * Update throttler-topo workflow file [#11784](https://github.com/vitessio/vitess/pull/11784)
+ * Fix closing the body for HTTP requests [#11842](https://github.com/vitessio/vitess/pull/11842)
+#### VReplication
+ * update jsonparser dependency [#11694](https://github.com/vitessio/vitess/pull/11694)
+#### VTorc
+ * Move vtorc runners back to normal github runners [#11482](https://github.com/vitessio/vitess/pull/11482)
+### Dependabot
+#### Java
+ * build(deps): Bump protobuf-java from 3.19.4 to 3.19.6 in /java [#11439](https://github.com/vitessio/vitess/pull/11439)
+#### VTAdmin
+ * build(deps): Bump @xmldom/xmldom from 0.7.5 to 0.7.8 in /web/vtadmin [#11615](https://github.com/vitessio/vitess/pull/11615)
+ * build(deps): Bump loader-utils from 1.4.0 to 1.4.1 in /web/vtadmin [#11659](https://github.com/vitessio/vitess/pull/11659)
+ * build(deps): Bump loader-utils from 1.4.1 to 1.4.2 in /web/vtadmin [#11725](https://github.com/vitessio/vitess/pull/11725)
+### Documentation
+#### Build/CI
+ * Update release notes summary for the new default MySQL version [#12222](https://github.com/vitessio/vitess/pull/12222)
+#### CLI
+ * [vtadmin] Do not backtick binary name [#11464](https://github.com/vitessio/vitess/pull/11464)
+ * [vtctldclient|docs] apply doc feedback based on website PR feedback [#12030](https://github.com/vitessio/vitess/pull/12030)
+#### Documentation
+ * Upgrades the release notes for v15.0.0 [#11567](https://github.com/vitessio/vitess/pull/11567)
+ * Copy design docs over from website [#12071](https://github.com/vitessio/vitess/pull/12071)
+#### VReplication
+ * Mark VDiff V2 as GA in v16 [#12084](https://github.com/vitessio/vitess/pull/12084)
+### Enhancement
+#### Authn/z
+ * VTGate: Set immediate caller id from gRPC static auth username [#12050](https://github.com/vitessio/vitess/pull/12050)
+#### Backup and Restore
+ * Incremental logical backup and point in time recovery [#11097](https://github.com/vitessio/vitess/pull/11097)
+ * vtbackup: disable redo log before starting replication [#11330](https://github.com/vitessio/vitess/pull/11330)
+ * remove excessive backup decompression logging [#11479](https://github.com/vitessio/vitess/pull/11479)
+ * vtbackup: add --disable-redo-log flag (default false) [#11594](https://github.com/vitessio/vitess/pull/11594)
+ * remove backup_hook from flag help [#12029](https://github.com/vitessio/vitess/pull/12029)
+#### Build/CI
+ * Move CI workflow to use latest community version of mysql 8.0 [#11493](https://github.com/vitessio/vitess/pull/11493)
+ * Upgrade the `release_notes_label` workflow for `v16.0.0` [#11544](https://github.com/vitessio/vitess/pull/11544)
+ * CODEOWNERS: Add maintainers to `.github/workflows` and `.github` [#11781](https://github.com/vitessio/vitess/pull/11781)
+ * Allow override of build git env in docker/base builds [#11968](https://github.com/vitessio/vitess/pull/11968)
+ * Add vtorc port to vitess local docker run [#12001](https://github.com/vitessio/vitess/pull/12001)
+ * Update the MySQL version used by our Docker images [#12054](https://github.com/vitessio/vitess/pull/12054)
+ * Fail CI when a PR is labeled with `NeedsWebsiteDocsUpdate` or `NeedsDescriptionUpdate` [#12062](https://github.com/vitessio/vitess/pull/12062)
+#### CLI
+ * Add GenerateShardRanges to vtctldclient [#11492](https://github.com/vitessio/vitess/pull/11492)
+ * Properly deprecate flags and fix default for `--cell` [#11501](https://github.com/vitessio/vitess/pull/11501)
+ * Allow version to be accessible via the -v shorthand [#11512](https://github.com/vitessio/vitess/pull/11512)
+#### Cluster management
+ * Create new api for topo lock shard exists [#11269](https://github.com/vitessio/vitess/pull/11269)
+ * Deprecating VExec part1: removing client-side references [#11955](https://github.com/vitessio/vitess/pull/11955)
+#### Driver
+ * Implement the RowsColumnTypeScanType interface in the go sql driver [#12007](https://github.com/vitessio/vitess/pull/12007)
+#### Examples
+ * Give all permissions in rbac in examples [#11463](https://github.com/vitessio/vitess/pull/11463)
+ * Fix Vitess Operator example [#11546](https://github.com/vitessio/vitess/pull/11546)
+#### General
+ * removing unncessary flags across binaries [#11495](https://github.com/vitessio/vitess/pull/11495)
+ * [release-15.0] Upgrade to `go1.18.7` [#11507](https://github.com/vitessio/vitess/pull/11507)
+ * vttablet sidecar schema:use schemadiff to reach desired schema on tablet init replacing the withDDL-based approach [#11520](https://github.com/vitessio/vitess/pull/11520)
+ * Removing redundant flags across binaries [#11522](https://github.com/vitessio/vitess/pull/11522)
+ * Remove `EnableTracingOpt` and `--grpc_enable_tracing` [#11543](https://github.com/vitessio/vitess/pull/11543)
+ * Add default lower stack limit [#11569](https://github.com/vitessio/vitess/pull/11569)
+ * Upgrade to `go1.19.4` [#11905](https://github.com/vitessio/vitess/pull/11905)
+ * Add structure logging to Vitess [#11960](https://github.com/vitessio/vitess/pull/11960)
+ * Revert changes made in #11960 [#12219](https://github.com/vitessio/vitess/pull/12219)
+#### Governance
+ * Add manan and florent to Docker files CODEOWNERS [#11981](https://github.com/vitessio/vitess/pull/11981)
+#### Query Serving
+ * ComBinlogDumpGTID and downstream replication protocol [#10066](https://github.com/vitessio/vitess/pull/10066)
+ * Document error code in `vtgate/planbuilder` [#10738](https://github.com/vitessio/vitess/pull/10738)
+ * opt in/out of query consolidation [#11080](https://github.com/vitessio/vitess/pull/11080)
+ * Online DDL: more (async) log visibility into cut-over phase [#11253](https://github.com/vitessio/vitess/pull/11253)
+ * optionally disable verify-after-insert behavior of lookup vindexes [#11313](https://github.com/vitessio/vitess/pull/11313)
+ * resource pool: resource max lifetime timeout [#11337](https://github.com/vitessio/vitess/pull/11337)
+ * feat: added query timeout to vtgate default and per session [#11429](https://github.com/vitessio/vitess/pull/11429)
+ * [evalengine] add rewrites for nullif and ifnull [#11431](https://github.com/vitessio/vitess/pull/11431)
+ * Handle aliasing of collation names [#11433](https://github.com/vitessio/vitess/pull/11433)
+ * vitess Online DDL atomic cut-over [#11460](https://github.com/vitessio/vitess/pull/11460)
+ * Keep track of expanded columns in the semantic analysis [#11462](https://github.com/vitessio/vitess/pull/11462)
+ * feat: deconstruct tuple comparisons so we can use them for routing decisions [#11500](https://github.com/vitessio/vitess/pull/11500)
+ * Add Gauge For CheckMySQL Running [#11524](https://github.com/vitessio/vitess/pull/11524)
+ * Optimize List Support In Vindex Functions [#11531](https://github.com/vitessio/vitess/pull/11531)
+ * add option to disable lookup read lock [#11538](https://github.com/vitessio/vitess/pull/11538)
+ * [refactor] Predicate push down [#11552](https://github.com/vitessio/vitess/pull/11552)
+ * planner: better bindvar names for auto-parameterized queries [#11571](https://github.com/vitessio/vitess/pull/11571)
+ * planner enhancement: nice bindvar names for update [#11581](https://github.com/vitessio/vitess/pull/11581)
+ * Online DDL: more support for INSTANT DDL [#11591](https://github.com/vitessio/vitess/pull/11591)
+ * vtgate: route create table statements to vschema keyspace [#11602](https://github.com/vitessio/vitess/pull/11602)
+ * Dynamic tablet throttler config: enable/disable, set metrics query/threshold [#11604](https://github.com/vitessio/vitess/pull/11604)
+ * Cleanup copying of proto results to sqltypes.Result [#11607](https://github.com/vitessio/vitess/pull/11607)
+ * Move horizon planning to operators [#11622](https://github.com/vitessio/vitess/pull/11622)
+ * normalize more expressions [#11631](https://github.com/vitessio/vitess/pull/11631)
+ * Fix `OR 1=0` causing queries to scatter [#11653](https://github.com/vitessio/vitess/pull/11653)
+ * Online DDL: normalize/idempotentize CHECK CONSTRAINTs in ALTER TABLE statement [#11663](https://github.com/vitessio/vitess/pull/11663)
+ * add support for transaction isolation level and make it vitess aware setting [#11673](https://github.com/vitessio/vitess/pull/11673)
+ * don't reuse bindvars for LIMIT and OFFSET [#11689](https://github.com/vitessio/vitess/pull/11689)
+ * Online DDL: more scheduler triggering following successful operations [#11701](https://github.com/vitessio/vitess/pull/11701)
+ * Add support for transaction access mode [#11704](https://github.com/vitessio/vitess/pull/11704)
+ * rewrite predicates to expose routing opportunities [#11765](https://github.com/vitessio/vitess/pull/11765)
+ * find IN route possibility in ORs [#11775](https://github.com/vitessio/vitess/pull/11775)
+ * [planner] Better AST equality [#11867](https://github.com/vitessio/vitess/pull/11867)
+ * optimize joins, redirect dml for reference tables [#11875](https://github.com/vitessio/vitess/pull/11875)
+ * VExplain statement [#11892](https://github.com/vitessio/vitess/pull/11892)
+ * Simplify `getPlan` and `gen4CompareV3` [#11903](https://github.com/vitessio/vitess/pull/11903)
+ * Better clone of the VCursor [#11926](https://github.com/vitessio/vitess/pull/11926)
+ * Better clone of the VCursor [#11926](https://github.com/vitessio/vitess/pull/11926)
+ * [planner] Schema information on the information_schema views [#11941](https://github.com/vitessio/vitess/pull/11941)
+ * schemadiff: foreign key validation (tables and columns) [#11944](https://github.com/vitessio/vitess/pull/11944)
+ * OnlineDDL: support --unsafe-allow-foreign-keys strategy flag [#11976](https://github.com/vitessio/vitess/pull/11976)
+ * support transaction isolation modification through reserved connection system settings [#11987](https://github.com/vitessio/vitess/pull/11987)
+ * **unsafe**: Online DDL support for `--unsafe-allow-foreign-keys` strategy flag [#11988](https://github.com/vitessio/vitess/pull/11988)
+ * vtgate advertised mysql server version to 8.0.31 [#11989](https://github.com/vitessio/vitess/pull/11989)
+ * schemadiff: normalize `PRIMARY KEY` definition [#12016](https://github.com/vitessio/vitess/pull/12016)
+ * schemadiff: validate and apply foreign key indexes [#12026](https://github.com/vitessio/vitess/pull/12026)
+ * OnlineDDL: 'mysql' strategy, managed by the scheduler, but executed via normal MySQL statements [#12027](https://github.com/vitessio/vitess/pull/12027)
+ * Refactor sqlparser.Rewrite uses [#12059](https://github.com/vitessio/vitess/pull/12059)
+ * Online DDL: --in-order-completion ddl strategy and logic [#12113](https://github.com/vitessio/vitess/pull/12113)
+ * schemadiff: TableCharsetCollateStrategy hint [#12137](https://github.com/vitessio/vitess/pull/12137)
+ * Support BETWEEN in the evalengine [#12150](https://github.com/vitessio/vitess/pull/12150)
+ * Use schema for the information_schema views [#12171](https://github.com/vitessio/vitess/pull/12171)
+ * vtgateconn: add DeregisterDialer hook [#12213](https://github.com/vitessio/vitess/pull/12213)
+#### VReplication
+ * VReplication Copy Phase: Parallelize Bulk Inserts [#10828](https://github.com/vitessio/vitess/pull/10828)
+ * VSCopy: Resume the copy phase consistently from given GTID and lastpk [#11103](https://github.com/vitessio/vitess/pull/11103)
+ * For partial MoveTables, setup reverse shard routing rules on workflow creation [#11415](https://github.com/vitessio/vitess/pull/11415)
+ * Use unique rows in copy_state to support parallel replication [#11451](https://github.com/vitessio/vitess/pull/11451)
+ * Log which tablet copy_state optimization failed on [#11521](https://github.com/vitessio/vitess/pull/11521)
+ * Allow users to control VReplication DDL handling [#11532](https://github.com/vitessio/vitess/pull/11532)
+ * VReplication: Defer Secondary Index Creation [#11700](https://github.com/vitessio/vitess/pull/11700)
+ * VSCopy: Send COPY_COMPLETED events when the copy operation is done [#11740](https://github.com/vitessio/vitess/pull/11740)
+ * Add `VStreamerCount` stat to `vttablet` [#11978](https://github.com/vitessio/vitess/pull/11978)
+#### VTAdmin
+ * [VTAdmin] `Validate`, `ValidateShard`, `ValidateVersionShard`, `GetFullStatus` [#11438](https://github.com/vitessio/vitess/pull/11438)
+ * Full Status tab improvements for VTAdmin [#11470](https://github.com/vitessio/vitess/pull/11470)
+ * [15.0] Add VTGate debug/status page link to VTAdmin [#11541](https://github.com/vitessio/vitess/pull/11541)
+ * VTAdmin: display workflow type in workflows list [#11685](https://github.com/vitessio/vitess/pull/11685)
+#### VTorc
+ * Timeout Fixes and VTOrc Improvement [#11881](https://github.com/vitessio/vitess/pull/11881)
+ * Also log error on a failure in DiscoverInstance [#11936](https://github.com/vitessio/vitess/pull/11936)
+ * VTOrc Code Cleanup - generate_base, replace cluster_name with keyspace and shard. [#12012](https://github.com/vitessio/vitess/pull/12012)
+ * Move vtorc from go-sqlite3 to modernc.org/sqlite [#12214](https://github.com/vitessio/vitess/pull/12214)
+### Feature Request
+#### Evalengine
+ * evalengine: Support built-in MySQL function for string functions and operations [#11185](https://github.com/vitessio/vitess/pull/11185)
+#### Query Serving
+ * Add support for views in vtgate [#11195](https://github.com/vitessio/vitess/pull/11195)
+ * Add support for Views DDL [#11896](https://github.com/vitessio/vitess/pull/11896)
+ * notify view change to vtgate [#12115](https://github.com/vitessio/vitess/pull/12115)
+ * Views Support: Updating Views in VSchema for query serving [#12124](https://github.com/vitessio/vitess/pull/12124)
+#### web UI
+ * [VTAdmin] Topology Browser [#11496](https://github.com/vitessio/vitess/pull/11496)
+### Internal Cleanup
+#### Backup and Restore
+ * backup: remove deprecated hook support [#12066](https://github.com/vitessio/vitess/pull/12066)
+#### Build/CI
+ * Update all the Go dependencies [#11741](https://github.com/vitessio/vitess/pull/11741)
+ * Remove building Docker containers with MariaDB [#12040](https://github.com/vitessio/vitess/pull/12040)
+ * Add TOC to the summary docs [#12225](https://github.com/vitessio/vitess/pull/12225)
+#### CLI
+ * moved missed flags to pflags in vtgate [#11966](https://github.com/vitessio/vitess/pull/11966)
+ * Migrate missed vtctld flags to pflag and immediately deprecate them [#11974](https://github.com/vitessio/vitess/pull/11974)
+ * Remove Dead Legacy Workflow Manager Code [#12085](https://github.com/vitessio/vitess/pull/12085)
+#### Cluster management
+ * Adding deprecate message to backup hooks [#11491](https://github.com/vitessio/vitess/pull/11491)
+ * Orchestrator Integration Removal and `orc_client_user` removal [#11503](https://github.com/vitessio/vitess/pull/11503)
+ * [15.0] Deprecate InitShardPrimary command [#11557](https://github.com/vitessio/vitess/pull/11557)
+ * mysqlctl is a command-line client so remove server flags [#12022](https://github.com/vitessio/vitess/pull/12022)
+ * Remove replication manager and run VTOrc in all e2e tests [#12149](https://github.com/vitessio/vitess/pull/12149)
+#### General
+ * Improve Codeowners File [#11428](https://github.com/vitessio/vitess/pull/11428)
+ * Remove example script that caused some confusion [#11529](https://github.com/vitessio/vitess/pull/11529)
+ * Remove unused ioutil2 code [#11661](https://github.com/vitessio/vitess/pull/11661)
+ * Fix some linter errors [#11773](https://github.com/vitessio/vitess/pull/11773)
+ * Remove Deprecated flags, code and stats. [#12083](https://github.com/vitessio/vitess/pull/12083)
+#### Governance
+ * Correct minor inaccuracies in governing docs [#11933](https://github.com/vitessio/vitess/pull/11933)
+#### Online DDL
+ * [cleanup] Explicitly include DDLStrategySetting in the sizegen target [#11857](https://github.com/vitessio/vitess/pull/11857)
+ * OnlineDDL: avoid schema_migrations AUTO_INCREMENT gaps by pre-checking for existing migration [#12169](https://github.com/vitessio/vitess/pull/12169)
+#### Query Serving
+ * [gen4 planner] Operator refactoring [#11498](https://github.com/vitessio/vitess/pull/11498)
+ * [gen4]: small refactoring around Compact [#11537](https://github.com/vitessio/vitess/pull/11537)
+ * change CreatePhysicalOperator to use the rewriteBottomUp() functionality [#11542](https://github.com/vitessio/vitess/pull/11542)
+ * [refactor planner] Columns and predicates on operators [#11606](https://github.com/vitessio/vitess/pull/11606)
+ * Move initialization of metrics to be static [#11608](https://github.com/vitessio/vitess/pull/11608)
+ * planner operators refactoring [#11680](https://github.com/vitessio/vitess/pull/11680)
+ * sqlparser: new Equality API [#11906](https://github.com/vitessio/vitess/pull/11906)
+ * sqlparser: `QueryMatchesTemplates` uses canonical string [#11990](https://github.com/vitessio/vitess/pull/11990)
+ * Move more rewriting to SafeRewrite [#12063](https://github.com/vitessio/vitess/pull/12063)
+ * store transaction isolation level in upper case [#12099](https://github.com/vitessio/vitess/pull/12099)
+ * Generating copy-on-rewrite logic [#12135](https://github.com/vitessio/vitess/pull/12135)
+ * Clean up ColumnType uses [#12139](https://github.com/vitessio/vitess/pull/12139)
+#### TabletManager
+ * Table GC: rely on tm state to determine operation mode [#11972](https://github.com/vitessio/vitess/pull/11972)
+ * Mark VReplicationExec Client Command as Deprecated [#12070](https://github.com/vitessio/vitess/pull/12070)
+#### VReplication
+ * Leverage pFlag's Changed function to detect user specified flag [#11677](https://github.com/vitessio/vitess/pull/11677)
+ * VReplication: Remove Deprecated V1 Client Commands [#11705](https://github.com/vitessio/vitess/pull/11705)
+#### VTAdmin
+ * move react-scripts to dev dependencies [#11767](https://github.com/vitessio/vitess/pull/11767)
+#### web UI
+ * [vtctld2] Remove vtctld2 UI and vtctld server components that serve the app UI [#11851](https://github.com/vitessio/vitess/pull/11851)
+### Performance
+#### Cluster management
+ * Bug fix: Cache filtered out tablets in topology watcher to avoid unnecessary GetTablet calls to topo [#12194](https://github.com/vitessio/vitess/pull/12194)
+#### Online DDL
+ * Speedup DDLs by not reloading table size stats [#11601](https://github.com/vitessio/vitess/pull/11601)
+#### Query Serving
+ * DDL: do not Reload() for 'CREATE TEMPORARY' and 'DROP TEMPORARY' statements [#12144](https://github.com/vitessio/vitess/pull/12144)
+#### VReplication
+ * mysql: Improve MySQL 5.6 GTID parsing performance [#11570](https://github.com/vitessio/vitess/pull/11570)
+#### vttestserver
+ * vttestserver: make tablet_refresh_interval configurable and reduce default value [#11918](https://github.com/vitessio/vitess/pull/11918)
+### Release
+#### Build/CI
+ * Improve the release process [#12056](https://github.com/vitessio/vitess/pull/12056)
+ * Use Ubuntu 20.04 for Release Builds [#12202](https://github.com/vitessio/vitess/pull/12202)
+ * Use Ubuntu 20.04 for Release Builds [#12202](https://github.com/vitessio/vitess/pull/12202)
+#### Documentation
+ * Fix release notes summary links [#11508](https://github.com/vitessio/vitess/pull/11508)
+ * Release notes summary of `14.0.4` [#11849](https://github.com/vitessio/vitess/pull/11849)
+ * Release notes for `v15.0.2` [#11963](https://github.com/vitessio/vitess/pull/11963)
+#### General
+ * Release notes for 15.0.0-rc1 and update SNAPSHOT version to 16.0.0 [#11445](https://github.com/vitessio/vitess/pull/11445)
+ * fix anchors for release notes and summary [#11578](https://github.com/vitessio/vitess/pull/11578)
+ * update release notes after 15.0 [#11584](https://github.com/vitessio/vitess/pull/11584)
+ * Mention the `--db-config-*-*` flag in the release notes [#11610](https://github.com/vitessio/vitess/pull/11610)
+ * Release notes for 15.0.1 [#11850](https://github.com/vitessio/vitess/pull/11850)
+ * updating summary and release notes for v15.0.1 [#11852](https://github.com/vitessio/vitess/pull/11852)
+ * [main] Update the release `15.0.2` summary doc (#11954) [#11956](https://github.com/vitessio/vitess/pull/11956)
+### Testing
+#### Backup and Restore
+ * go/vt/mysqlctl: add compression benchmarks [#11994](https://github.com/vitessio/vitess/pull/11994)
+#### Build/CI
+ * endtoend: fix race when closing vtgate [#11707](https://github.com/vitessio/vitess/pull/11707)
+ * [ci issue] Tests are running on older versions that do not support the query [#11923](https://github.com/vitessio/vitess/pull/11923)
+ * consolidating OnlineDDL 'singleton' tests into 'scheduler' tests: part 1 [#12055](https://github.com/vitessio/vitess/pull/12055)
+ * Internal: Fix Bad Merge [#12087](https://github.com/vitessio/vitess/pull/12087)
+ * add debug tooling [#12126](https://github.com/vitessio/vitess/pull/12126)
+ * Remove the semgrep action [#12148](https://github.com/vitessio/vitess/pull/12148)
+ * CI cleanup: remove onlineddl_declarative, onlineddl_singleton (cleanup part 2) [#12182](https://github.com/vitessio/vitess/pull/12182)
+ * Online DDL CI: consolidated revertible and revert CI tests (part 1) [#12183](https://github.com/vitessio/vitess/pull/12183)
+ * Allow manually kicking off CodeQL [#12200](https://github.com/vitessio/vitess/pull/12200)
+#### General
+ * endtoend: fix dbconfig initialization for endtoend tests [#11609](https://github.com/vitessio/vitess/pull/11609)
+#### Query Serving
+ * Add additional unit test with state changes swapped [#11192](https://github.com/vitessio/vitess/pull/11192)
+ * Use JSON for plan tests [#11430](https://github.com/vitessio/vitess/pull/11430)
+ * Add a PRIMARY KEY to the aggregation E2E tests [#11459](https://github.com/vitessio/vitess/pull/11459)
+ * Change the indexes in `TestEmptyTableAggr` to be unique [#11485](https://github.com/vitessio/vitess/pull/11485)
+ * Readable plan tests [#11708](https://github.com/vitessio/vitess/pull/11708)
+ * test: deflake TestQueryTimeoutWithTables [#11772](https://github.com/vitessio/vitess/pull/11772)
+ * more unit tests for QueryMatchesTemplates() [#11894](https://github.com/vitessio/vitess/pull/11894)
+ * remove e2e test from partial_keyspace config [#12005](https://github.com/vitessio/vitess/pull/12005)
+#### VReplication
+ * VDiff2: Migrate VDiff1 Unit Tests [#11916](https://github.com/vitessio/vitess/pull/11916)
+ * VReplication: Test Migrations From MariaDB to MySQL [#12036](https://github.com/vitessio/vitess/pull/12036)
+
diff --git a/doc/releasenotes/16_0_0_release_notes.md b/doc/releasenotes/16_0_0_release_notes.md
index 55b30b03cfc..49f48360813 100644
--- a/doc/releasenotes/16_0_0_release_notes.md
+++ b/doc/releasenotes/16_0_0_release_notes.md
@@ -1,32 +1,462 @@
-# Release of Vitess v16.0.0
+# Release of Vitess v16.0.0-rc1
+## Summary
-## Major Changes
+### Table of Contents
-### Online DDL
+- **[Major Changes](#major-changes)**
+ - **[VReplication](#vreplication)**
+ - [VStream Copy Resume](#vstream-copy-resume)
+ - [VDiff2 GA](#vdiff2-ga)
+ - **[Tablet throttler](#tablet-throttler)**
+ - **[Incremental backup and point in time recovery](#inc-backup)**
+ - **[Replication manager removal and VTOrc becomes mandatory](#repl-manager-removal)**
+ - **[Breaking Changes](#breaking-changes)**
+ - [VTGate Advertised MySQL Version](#advertised-mysql-version)
+ - [Default MySQL version on Docker](#default-mysql-version)
+ - [vtctld UI Removal](#vtcltd-ui-removal)
+ - [vtctld Flag Deprecation & Deletions](#vtctld-flag-deprecations)
+ - [Orchestrator Integration Deletion](#orc-integration-removal)
+ - [mysqlctl Flags](#mysqlctl-flags)
+ - [Query Serving Errors](#qs-errors)
+ - [Logstats Table and Keyspace removed](#logstats-table-keyspace)
+ - [Removed Stats](#removed-stats)
+ - [Deprecated Stats](#deprecated-stats)
+ - [Removed flag](#removed-flag)
+ - [`lock-timeout` and `remote_operation_timeout` Changes](#lock-timeout-introduction)
+ - [Normalized labels in the Prometheus Exporter](#normalized-lables)
+ - **[New command line flags and behavior](#new-flag)**
+ - [VTGate: Support query timeout --query-timeout](#vtgate-query-timeout)
+ - [VTTablet: VReplication parallel insert workers --vreplication-parallel-insert-workers](#vrepl-parallel-workers)
+ - [VTTablet: --queryserver-config-pool-conn-max-lifetime](#queryserver-lifetime)
+ - [vttablet --throttler-config-via-topo](#vttablet-throttler-config)
+ - [vtctldclient UpdateThrottlerConfig](#vtctldclient-update-throttler)
+ - [vtctldclient Backup --incremental_from_pos](#vtctldclient-backup)
+ - [vtctldclient RestoreFromBackup --restore_to_pos](#vtctldclient-restore-from-backup)
+ - [New `vexplain` command](#new-vexplain-command)
+ - **[Important bug fixes](#important-bug-fixes)**
+ - [Corrupted results for non-full-group-by queries with JOINs](#corrupted-results)
+ - **[Deprecations and Removals](#deprecations-removals)**
+ - **[MySQL Compatibility](#mysql-compatibility)**
+ - [Transaction Isolation Level](#transaction-isolation-level)
+ - [Transaction Access Mode](#transaction-access-mode)
+ - [Support for views](#support-views)
+ - **[VTOrc](#vtorc)**
+ - [Flag Deprecations](#flag-deprecations)
+ - **[VTTestServer](#vttestserver)**
+ - [Performance Improvement](#perf-improvement)
+- **[Minor Changes](#minor-changes)**
+ - **[Backup compression benchmarks](#backup-comp-benchmarks)**
+- **[Refactor](#refactor)**
+ - **[VTTablet sidecar schema maintenance refactor](#vttablet-sidecar-schema)**
-#### 'mysql' strategy
+## Major Changes
-Introducing a new DDL strategy: `mysql`. This strategy is a hybrid between `direct` (which is completely non-Online) and the various online strategies.
+### VReplication
-A migration submitted with `mysql` strategy is _managed_. That is, it gets a migration UUID. The scheduler queues it, reviews it, runs it. The user may cancel or retry it, much like all Online DDL migrations. The difference is that when the scheduler runs the migration via normal MySQL `CREATE/ALTER/DROP TABLE` statements.
+#### VStream Copy Resume
-The user may add `ALGORITHM=INPLACE` or `ALGORITHM=INSTANT` as they please, and the scheduler will attempt to run those as is. Some migrations will be completely blocking. See the [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html). In particular, consider that for non-`INSTANT` DDLs, replicas will accumulate substantial lag.
+In [PR #11103](https://github.com/vitessio/vitess/pull/11103) we introduced the ability to resume a `VTGate` [`VStream` copy operation](https://vitess.io/docs/design-docs/vreplication/vstream/vscopy/). This is useful when a [`VStream` copy operation](https://vitess.io/docs/design-docs/vreplication/vstream/vscopy/) is interrupted due to e.g. a network failure or a server restart. The `VStream` copy operation can be resumed by specifying each table's last seen primary key value in the `VStream` request. Please see the [`VStream` docs](https://vitess.io/docs/16.0/reference/vreplication/vstream/) for more details.
-#### '--in-order-completion' strategy flag
+#### VDiff2 GA
-A migration that runs with this DDL strategy flag may only complete if no prior migrations are still pending (pending means either `queued`, `ready` or `running` states).
+We are marking [VDiff v2](https://vitess.io/docs/16.0/reference/vreplication/vdiff2/) as Generally Available or production-ready in v16. We now recommend that you use v2 rather than v1 going forward. V1 will be deprecated and eventually removed in future releases.
+If you wish to use v1 for any reason, you will now need to specify the `--v1` flag.
-`--in-order-completion` considers the order by which migrations were submitted. For example:
+### Tablet throttler
-- In two sequential `ApplySchema` commands, the first is considered to be "earlier" and the second is "later".
-- In a single `ApplySchema` command, and with multiple queries in `--sql` command line argument, the order of migrations is the same as the order of SQL statements.
+The tablet throttler can now be configured dynamically. Configuration is now found in the topo service, and applies to all tablets in all shards and cells of a given keyspace. For backwards compatibility `v16` still supports `vttablet`-based command line flags for throttler ocnfiguration.
-Internally, that order is implied by the `id` column of `_vt.schema_migrations` table.
+It is possible to enable/disable, to change throttling threshold as well as the throttler query.
-Note that `--in-order-completion` still allows concurrency. In fact, it is designed to work with concurrent migrations. The idea is that many migrations may run concurrently, but the way they finally `complete` is in-order.
+See https://github.com/vitessio/vitess/pull/11604
-This lets the user submit multiple migrations which may have some dependencies (for example, introduce two views, one of which reads from the other). As long as the migrations are submitted in a valid order, the user can then expect Vitess to complete the migrations successfully (and in that order).
+### Incremental backup and point in time recovery
-This strategy flag applies to any `CREATE|DROP TABLE|VIEW` statements, and to `ALTER TABLE` with `vitess|online` strategy.
+In [PR #11097](https://github.com/vitessio/vitess/pull/11097) we introduced native incremental backup and point in time recovery:
+
+- It is possible to take an incremental backup, starting with last known (full or incremental) backup, and up to either a specified (GTID) position, or current ("auto") position.
+- The backup is done by copying binary logs. The binary logs are rotated as needed.
+- It is then possible to restore a backup up to a given point in time (GTID position). This involves finding a restore path consisting of a full backup and zero or more incremental backups, applied up to the given point in time.
+- A server restored to a point in time remains in `DRAINED` tablet type, and does not join the replication stream (thus, "frozen" in time).
+- It is possible to take incremental backups from different tablets. It is OK to have overlaps in incremental backup contents. The restore process chooses a valid path, and is valid as long as there are no gaps in the backed up binary log content.
+
+### Replication manager removal and VTOrc becomes mandatory
+VTOrc is now a **required** component of Vitess starting from v16. If the users want VTOrc 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.
+The flag `disable-replication-manager` is deprecated and will be removed in a later release.
+
+### Breaking Changes
+
+#### VTGate Advertised MySQL Version
+
+VTGate now advertises MySQL version 8.0.31. This is a breaking change for clients that rely on the VTGate advertised MySQL version and still use MySQL 5.7.
+The users can set the `mysql_server_version` flag to advertise the correct version.
+
+#### Default MySQL version on Docker
+
+The default major MySQL version used by our `vitess/lite:latest` image is going from `5.7` to `8.0`. Additionally, the default patch version of the `vitess/lite:mysql80` image goes from `8.0.23` to `8.0.31`.
+
+#### vtctld UI Removal
+In v13, the vtctld UI was deprecated. As of this release, the `web/vtctld2` directory is deleted and the UI will no longer be included in any Vitess images going forward. All build scripts and the Makefile have been updated to reflect this change.
+
+However, the vtctld HTTP API will remain at `{$vtctld_web_port}/api`.
+
+#### vtctld Flag Deprecation & Deletions
+With the removal of the vtctld UI, the following vtctld flags have been deprecated:
+- `--vtctld_show_topology_crud`: This was a flag that controlled the display of CRUD topology actions in the vtctld UI. The UI is removed, so this flag is no longer necessary.
+
+The following deprecated flags have also been removed:
+- `--enable_realtime_stats`
+- `--enable_vtctld_ui`
+- `--web_dir`
+- `--web_dir2`
+- `--workflow_manager_init`
+- `--workflow_manager_use_election`
+- `--workflow_manager_disable`
+
+#### Orchestrator Integration Deletion
+
+Orchestrator integration in `vttablet` was deprecated in the previous release and is deleted in this release.
+Consider using `VTOrc` instead of `Orchestrator`.
+
+#### mysqlctl Flags
+
+The [`mysqlctl` command-line client](https://vitess.io/docs/16.0/reference/programs/mysqlctl/) had some leftover (ignored) server flags after the [v15 pflag work](https://github.com/vitessio/enhancements/blob/main/veps/vep-4.md). Those unused flags have now been removed. If you are using any of the following flags with `mysqlctl` in your scripts or other tooling, they will need to be removed prior to upgrading to v16:
+ `--port --grpc_auth_static_client_creds --grpc_compression --grpc_initial_conn_window_size --grpc_initial_window_size --grpc_keepalive_time --grpc_keepalive_timeout`
+
+#### Query Serving Errors
+
+In this release, we are introducing a new way to report errors from Vitess through the query interface.
+Errors will now have an error code for each error, which will make it easy to search for more information on the issue.
+For instance, the following error:
+
+```
+aggregate functions take a single argument 'count(user_id, name)'
+```
+
+Will be transformed into:
+
+```
+VT03001: aggregate functions take a single argument 'count(user_id, name)'
+```
+
+The error code `VT03001` can then be used to search or ask for help and report problems.
+
+If you have code searching for error strings from Vitess, this is a breaking change.
+Many error strings have been tweaked.
+If your application is searching for specific errors, you might need to update your code.
+
+#### Logstats Table and Keyspace removed
+
+Information about which tables are used is now reported by the field TablesUsed added in v15, that is a string array, listing all tables and which keyspace they are in.
+The Table/Keyspace fields were deprecated in v15 and are now removed in the v16 release of Vitess.
+
+#### Removed Stats
+
+The stat `QueryRowCounts` is removed in v16. `QueryRowsAffected` and `QueryRowsReturned` can be used instead to gather the same information.
+
+#### Deprecated Stats
+
+The stats `QueriesProcessed` and `QueriesRouted` are deprecated in v16. The same information can be inferred from the stats `QueriesProcessedByTable` and `QueriesRoutedByTable` respectively. These stats will be removed in the next release.
+
+#### Removed flag
+
+The following flag is removed in v16:
+- `enable_semi_sync`
+
+#### `lock-timeout` and `remote_operation_timeout` Changes
+
+Earlier, the shard and keyspace locks used to be capped by the `remote_operation_timeout`. This is no longer the case and instead a new flag called `lock-timeout` is introduced.
+For backward compatibility, if `lock-timeout` is unspecified and `remote_operation_timeout` flag is provided, then its value will also be used for `lock-timeout` as well.
+The default value for `remote_operation_timeout` has also changed from 30 seconds to 15 seconds. The default for the new flag `lock-timeout` is 45 seconds.
+
+During upgrades, if the users want to preserve the same behaviour as previous releases, then they should provide the `remote_operation_timeout` flag explicitly before upgrading.
+After the upgrade, they should then alter their configuration to also specify `lock-timeout` explicitly.
+
+#### Normalized labels in the Prometheus Exporter
+
+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`.
+
+### New command line flags and behavior
+
+#### VTGate: Support query timeout --query-timeout
+
+`--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.
+
+#### VTTablet: VReplication parallel insert workers --vreplication-parallel-insert-workers
+
+`--vreplication-parallel-insert-workers=[integer]` enables parallel bulk inserts during the copy phase
+of VReplication (disabled by default). When set to a value greater than 1 the bulk inserts — each
+executed as a single transaction from the vstream packet contents — may happen in-parallel and
+out-of-order, but the commit of those transactions are still serialized in order.
+
+Other aspects of the VReplication copy-phase logic are preserved:
+
+ 1. All statements executed when processing a vstream packet occur within a single MySQL transaction.
+ 2. Writes to `_vt.copy_state` always follow their corresponding inserts from within the vstream packet.
+ 3. The final `commit` for the vstream packet always follows the corresponding write to `_vt.copy_state`.
+ 4. The vstream packets are committed in the order seen in the stream. So for any PK1 and PK2, the write to `_vt.copy_state` and `commit` steps (steps 2 and 3 above) for PK1 will both precede the `_vt.copy_state` write and commit steps of PK2.
+
+ Other phases, catchup, fast-forward, and replicating/"running", are unchanged.
+
+#### VTTablet: --queryserver-config-pool-conn-max-lifetime
+
+`--queryserver-config-pool-conn-max-lifetime=[integer]` allows you to set a timeout on each connection in the query server connection pool. It chooses a random value between its value and twice its value, and when a connection has lived longer than the chosen value, it'll be removed from the pool the next time it's returned to the pool.
+
+#### vttablet --throttler-config-via-topo
+
+The flag `--throttler-config-via-topo` switches throttler configuration from `vttablet`-flags to the topo service. This flag is `false` by default, for backwards compatibility. It will default to `true` in future versions.
+
+#### vtctldclient UpdateThrottlerConfig
+
+Tablet throttler configuration is now supported in `topo`. Updating the throttler configuration is done via `vtctldclient UpdateThrottlerConfig` and applies to all tablet in all cells for a given keyspace.
+
+Examples:
+
+```shell
+# disable throttler; all throttler checks will return with "200 OK"
+$ vtctldclient UpdateThrottlerConfig --disable commerce
+
+# enable throttler; checks are responded with appropriate status per current metrics
+$ vtctldclient UpdateThrottlerConfig --enable commerce
+
+# Both enable and set threshold in same command. Since no query is indicated, we assume the default check for replication lag
+$ vtctldclient UpdateThrottlerConfig --enable --threshold 5.0 commerce
+
+# Change threshold. Does not affect enabled/disabled state of the throttler
+$ vtctldclient UpdateThrottlerConfig --threshold 1.5 commerce
+
+# Use a custom query
+$ vtctldclient UpdateThrottlerConfig --custom_query "show global status like 'threads_running'" --check_as_check_self --threshold 50 commerce
+
+# Restore default query and threshold
+$ vtctldclient UpdateThrottlerConfig --custom_query "" --check_as_check_shard --threshold 1.5 commerce
+```
+
+See https://github.com/vitessio/vitess/pull/11604
+
+#### vtctldclient Backup --incremental_from_pos
+
+The `Backup` command now supports `--incremental_from_pos` flag, which can receive a valid position or the value `auto`. For example:
+
+```shell
+$ vtctlclient -- Backup --incremental_from_pos "MySQL56/16b1039f-22b6-11ed-b765-0a43f95f28a3:1-615" zone1-0000000102
+$ 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 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.
+
+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.
+
+The incremental backup fails if it is unable to attain binary logs from given position (ie binary logs have been purged).
+
+The manifest of an incremental backup has a non-empty `FromPosition` value, and a `Incremental = true` value.
+
+#### vtctldclient RestoreFromBackup --restore_to_pos
+
+- `--restore_to_pos`: request to restore the server up to the given position (inclusive) and not one step further.
+- `--dry_run`: when `true`, calculate the restore process, if possible, evaluate a path, but exit without actually making any changes to the server.
+
+Examples:
+
+```shell
+$ vtctlclient -- RestoreFromBackup --restore_to_pos "MySQL56/16b1039f-22b6-11ed-b765-0a43f95f28a3:1-220" zone1-0000000102
+```
+
+The restore process seeks a restore _path_: a sequence of backups (handles/manifests) consisting of one full backup followed by zero or more incremental backups, that can bring the server up to the requested position, inclusive.
+
+The command fails if it cannot evaluate a restore path. Possible reasons:
+
+- there's gaps in the incremental backups
+- existing backups don't reach as far as requested position
+- all full backups exceed requested position (so there's no way to get into an ealier position)
+
+The command outputs the restore path.
+
+There may be multiple restore paths, the command prefers a path with the least number of backups. This has nothing to say about the amount and size of binary logs involved.
+
+The `RestoreFromBackup --restore_to_pos` ends with:
+
+- the restored server in intentionally broken replication setup
+- tablet type is `DRAINED`
+
+#### New `vexplain` command
+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).
+
+The formats `VTEXPLAIN` and `VITESS` for `EXPLAIN` queries are deprecated, and these newly introduced commands should be used instead.
+
+### Important bug fixes
+
+#### Corrupted results for non-full-group-by queries with JOINs
+
+An issue in versions `<= v14.0.3` and `<= v15.0.0` that generated corrupted results for non-full-group-by queries with a JOIN
+is now fixed. The full issue can be found [here](https://github.com/vitessio/vitess/issues/11625), and its fix [here](https://github.com/vitessio/vitess/pull/11633).
+
+### Deprecations and Removals
+
+- The V3 planner is deprecated as of the v16 release, and will be removed in the v17 release of Vitess.
+
+- The [VReplication v1 commands](https://vitess.io/docs/15.0/reference/vreplication/v1/) — which were deprecated in Vitess 11.0 — have been removed. You will need to use the [VReplication v2 commands](https://vitess.io/docs/16.0/reference/vreplication/v2/) instead.
+
+- The `vtctlclient VExec` command was removed, having been deprecated since v12.
+
+- The `vtctlclient VReplicationExec` command has now been deprecated and will be removed in a future release. Please see [#12070](https://github.com/vitessio/vitess/pull/12070) for additional details.
+
+- `vtctlclient OnlineDDL ... [complete|retry|cancel|cancel-all]` returns empty result on success instead of number of shard affected.
+
+- VTTablet flag `--backup_storage_hook` has been removed, use one of the builtin compression algorithms or `--external-compressor` and `--external-decompressor` instead.
+
+- vtbackup flag `--backup_storage_hook` has been removed, use one of the builtin compression algorithms or `--external-compressor` and `--external-decompressor` instead.
+
+- The VTTablet flag `--init_populate_metadata` has been deprecated, since we have deleted the `local_metadata` and `shard_metadata` sidecar database tables.
+
+- The dead legacy Workflow Manager related code was removed in [#12085](https://github.com/vitessio/vitess/pull/12085). This included the following `vtctl` client commands: `WorkflowAction`, `WorkflowCreate`, `WorkflowWait`, `WorkflowStart`, `WorkflowStop`, `WorkflowTree`, `WorkflowDelete`.
+
+- VTAdmin's `VTExplain` endpoint has been deprecated. Users can use the new `vexplain` query format instead. The endpoint will be deleted in a future release.
+
+
+### MySQL Compatibility
+
+#### Transaction Isolation Level
+
+Support added for `set [session] transaction isolation level `
+
+```sql
+transaction_characteristic: {
+ ISOLATION LEVEL level
+ | access_mode
+}
+
+level: {
+ REPEATABLE READ
+ | READ COMMITTED
+ | READ UNCOMMITTED
+ | SERIALIZABLE
+}
+```
+
+This will set the transaction isolation level for the current session.
+This will be applied to any shard where the session will open a transaction.
+
+#### Transaction Access Mode
+
+Support added for `start transaction` with transaction characteristic.
+
+```sql
+START TRANSACTION
+ [transaction_characteristic [, transaction_characteristic] ...]
+
+transaction_characteristic: {
+ WITH CONSISTENT SNAPSHOT
+ | READ WRITE
+ | READ ONLY
+}
+```
+
+This will allow users to start a transaction with these characteristics.
+
+#### Support for views
+
+Vitess now supports views in sharded keyspace. Views are not created on the underlying database but are logically stored
+in vschema.
+Any query using a view will get re-written as a derived table during query planning.
+VSchema Example
+
+```json
+{
+ "sharded": true,
+ "vindexes": {},
+ "tables": {},
+ "views": {
+ "view1": "select * from t1",
+ "view2": "select * from t2",
+ }
+}
+```
+
+### VTOrc
+
+#### Flag Deprecations
+
+The flag `lock-shard-timeout` has been deprecated. Please use the newly introduced `lock-timeout` instead. More detail [here](#lock-timeout-introduction).
+
+### VTTestServer
+
+#### Performance Improvement
+
+Creating a database with vttestserver was taking ~45 seconds. This can be problematic in test environments where testcases do a lot of `create` and `drop` database.
+In an effort to minimize the database creation time, we have changed the value of `tablet_refresh_interval` to 10s while instantiating vtcombo during vttestserver initialization. We have also made this configurable so that it can be reduced further if desired.
+For any production cluster the default value of this flag is still [1 minute](https://vitess.io/docs/15.0/reference/programs/vtgate/). Reducing this value might put more stress on Topo Server (since we now read from Topo server more often) but for testing purposes
+this shouldn't be a concern.
+
+## Minor changes
+
+### Backup compression benchmarks
+
+Compression benchmarks have been added to the `mysqlctl` package.
+
+The benchmarks fetch and compress a ~6 GiB tar file containing 3 InnoDB files using different built-in and external compressors.
+
+Here are sample results from a 2020-era Mac M1 with 16 GiB of memory:
+
+```sh
+$ go test -bench=BenchmarkCompress ./go/vt/mysqlctl -run=NONE -timeout=12h -benchtime=1x -v
+goos: darwin
+goarch: arm64
+pkg: vitess.io/vitess/go/vt/mysqlctl
+BenchmarkCompressLz4Builtin
+ compression_benchmark_test.go:310: downloading data from https://www.dropbox.com/s/raw/smmgifsooy5qytd/enwiki-20080103-pages-articles.ibd.tar.zst
+ BenchmarkCompressLz4Builtin-8 1 11737493087 ns/op 577.98 MB/s 2.554 compression-ratio
+ BenchmarkCompressPargzipBuiltin
+ BenchmarkCompressPargzipBuiltin-8 1 31083784040 ns/op 218.25 MB/s 2.943 compression-ratio
+ BenchmarkCompressPgzipBuiltin
+ BenchmarkCompressPgzipBuiltin-8 1 13325299680 ns/op 509.11 MB/s 2.910 compression-ratio
+ BenchmarkCompressZstdBuiltin
+ BenchmarkCompressZstdBuiltin-8 1 18683863911 ns/op 363.09 MB/s 3.150 compression-ratio
+ BenchmarkCompressZstdExternal
+ BenchmarkCompressZstdExternal-8 1 10795487675 ns/op 628.41 MB/s 3.093 compression-ratio
+ BenchmarkCompressZstdExternalFast4
+ BenchmarkCompressZstdExternalFast4-8 1 7139319009 ns/op 950.23 MB/s 2.323 compression-ratio
+ BenchmarkCompressZstdExternalT0
+ BenchmarkCompressZstdExternalT0-8 1 4393860434 ns/op 1543.97 MB/s 3.093 compression-ratio
+ BenchmarkCompressZstdExternalT4
+ BenchmarkCompressZstdExternalT4-8 1 4389559744 ns/op 1545.49 MB/s 3.093 compression-ratio
+ PASS
+ cleaning up "/var/folders/96/k7gzd7q10zdb749vr02q7sjh0000gn/T/ee7d47b45ef09786c54fa2d7354d2a68.dat"
+```
+
+## Refactor
+
+### VTTablet sidecar schema maintenance refactor
+
+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.
+
+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`.
+
+------------
+The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/doc/releasenotes/16_0_0_changelog.md).
+
+The release includes 331 commits (excluding merges)
+
+Thanks to all our contributors: @EmadMokhtar, @GuptaManan100, @Weijun-H, @WilliamLu99, @ajm188, @arthurschreiber, @arvind-murty, @brendar, @brirams, @dbussink, @deepthi, @dependabot[bot], @draftcode, @ejortegau, @frouioui, @harshit-gangal, @jjh-kim, @johanoskarsson, @kbslvsk, @mattlord, @maxenglander, @mdlayher, @notfelineit, @pbibra, @pudiva, @rohit-nayak-ps, @rsajwani, @shlomi-noach, @systay, @timvaillancourt, @vitess-bot[bot], @vmg, @yoheimuta
-It _does not_ apply to `ALTER TABLE` in `gh-ost`, `pt-osc`, `mysql` and `direct` strategies.
diff --git a/docker/release.sh b/docker/release.sh
index d73b4ec2054..c1e5e71e784 100755
--- a/docker/release.sh
+++ b/docker/release.sh
@@ -1,7 +1,7 @@
#!/bin/bash
set -ex
-vt_base_version='v16.0.0'
+vt_base_version='16.0.0-rc1'
debian_versions='buster bullseye'
default_debian_version='bullseye'
diff --git a/examples/compose/docker-compose.beginners.yml b/examples/compose/docker-compose.beginners.yml
index bf916df0e42..00b0ca0ef5e 100644
--- a/examples/compose/docker-compose.beginners.yml
+++ b/examples/compose/docker-compose.beginners.yml
@@ -58,7 +58,7 @@ services:
- "3306"
vtctld:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15000:$WEB_PORT"
- "$GRPC_PORT"
@@ -81,7 +81,7 @@ services:
condition: service_healthy
vtgate:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15099:$WEB_PORT"
- "$GRPC_PORT"
@@ -111,7 +111,7 @@ services:
condition: service_healthy
schemaload:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
command:
- sh
- -c
@@ -144,12 +144,12 @@ services:
environment:
- KEYSPACES=$KEYSPACE
- GRPC_PORT=15999
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
vttablet100:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15100:$WEB_PORT"
- "$GRPC_PORT"
@@ -181,7 +181,7 @@ services:
retries: 15
vttablet101:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15101:$WEB_PORT"
- "$GRPC_PORT"
@@ -213,7 +213,7 @@ services:
retries: 15
vttablet102:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15102:$WEB_PORT"
- "$GRPC_PORT"
@@ -245,7 +245,7 @@ services:
retries: 15
vttablet103:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15103:$WEB_PORT"
- "$GRPC_PORT"
@@ -277,7 +277,7 @@ services:
retries: 15
vtorc:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
command: ["sh", "-c", "/script/vtorc-up.sh"]
depends_on:
- vtctld
@@ -307,7 +307,7 @@ services:
retries: 15
vreplication:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- ".:/script"
environment:
diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml
index 17f9e5fe65e..5d5750caf42 100644
--- a/examples/compose/docker-compose.yml
+++ b/examples/compose/docker-compose.yml
@@ -75,7 +75,7 @@ services:
- SCHEMA_FILES=lookup_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
schemaload_test_keyspace:
@@ -101,7 +101,7 @@ services:
- SCHEMA_FILES=test_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
set_keyspace_durability_policy:
@@ -115,7 +115,7 @@ services:
environment:
- KEYSPACES=test_keyspace lookup_keyspace
- GRPC_PORT=15999
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
vreplication:
@@ -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:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
vtctld:
@@ -143,7 +143,7 @@ services:
depends_on:
external_db_host:
condition: service_healthy
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15000:8080
- "15999"
@@ -160,7 +160,7 @@ services:
--normalize_queries=true '
depends_on:
- vtctld
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15099:8080
- "15999"
@@ -182,7 +182,7 @@ services:
- EXTERNAL_DB=0
- DB_USER=
- DB_PASS=
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 13000:8080
volumes:
@@ -217,7 +217,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15101:8080
- "15999"
@@ -254,7 +254,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15102:8080
- "15999"
@@ -291,7 +291,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15201:8080
- "15999"
@@ -328,7 +328,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15202:8080
- "15999"
@@ -365,7 +365,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15301:8080
- "15999"
@@ -402,7 +402,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15302:8080
- "15999"
diff --git a/examples/compose/vtcompose/docker-compose.test.yml b/examples/compose/vtcompose/docker-compose.test.yml
index a04fa5aa310..1f53ce21c37 100644
--- a/examples/compose/vtcompose/docker-compose.test.yml
+++ b/examples/compose/vtcompose/docker-compose.test.yml
@@ -79,7 +79,7 @@ services:
- SCHEMA_FILES=test_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
schemaload_unsharded_keyspace:
@@ -103,7 +103,7 @@ services:
- SCHEMA_FILES=unsharded_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
set_keyspace_durability_policy_test_keyspace:
@@ -117,7 +117,7 @@ services:
environment:
- GRPC_PORT=15999
- KEYSPACES=test_keyspace
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
set_keyspace_durability_policy_unsharded_keyspace:
@@ -130,7 +130,7 @@ services:
environment:
- GRPC_PORT=15999
- KEYSPACES=unsharded_keyspace
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
vreplication:
@@ -144,7 +144,7 @@ services:
- TOPOLOGY_FLAGS=--topo_implementation consul --topo_global_server_address consul1:8500
--topo_global_root vitess/global
- EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- .:/script
vtctld:
@@ -159,7 +159,7 @@ services:
depends_on:
external_db_host:
condition: service_healthy
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15000:8080
- "15999"
@@ -176,7 +176,7 @@ services:
''grpc-vtgateservice'' --normalize_queries=true '
depends_on:
- vtctld
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15099:8080
- "15999"
@@ -199,7 +199,7 @@ services:
- EXTERNAL_DB=0
- DB_USER=
- DB_PASS=
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 13000:8080
volumes:
@@ -234,7 +234,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15101:8080
- "15999"
@@ -271,7 +271,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15102:8080
- "15999"
@@ -308,7 +308,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15201:8080
- "15999"
@@ -345,7 +345,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15202:8080
- "15999"
@@ -382,7 +382,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- 15301:8080
- "15999"
diff --git a/examples/compose/vtcompose/vtcompose.go b/examples/compose/vtcompose/vtcompose.go
index 709ea5ee352..2543d7ac7e0 100644
--- a/examples/compose/vtcompose/vtcompose.go
+++ b/examples/compose/vtcompose/vtcompose.go
@@ -533,7 +533,7 @@ func generateDefaultShard(tabAlias int, shard string, keyspaceData keyspaceInfo,
- op: add
path: /services/init_shard_primary%[2]d
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
command: ["sh", "-c", "/vt/bin/vtctlclient %[5]s InitShardPrimary -force %[4]s/%[3]s %[6]s-%[2]d "]
%[1]s
`, dependsOn, aliases[0], shard, keyspaceData.keyspace, opts.topologyFlags, opts.cell)
@@ -565,7 +565,7 @@ func generateExternalPrimary(
- op: add
path: /services/vttablet%[1]d
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15%[1]d:%[3]d"
- "%[4]d"
@@ -627,7 +627,7 @@ func generateDefaultTablet(tabAlias int, shard, role, keyspace string, dbInfo ex
- op: add
path: /services/vttablet%[1]d
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15%[1]d:%[4]d"
- "%[5]d"
@@ -665,7 +665,7 @@ func generateVtctld(opts vtOptions) string {
- op: add
path: /services/vtctld
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15000:%[1]d"
- "%[2]d"
@@ -696,7 +696,7 @@ func generateVtgate(opts vtOptions) string {
- op: add
path: /services/vtgate
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
ports:
- "15099:%[1]d"
- "%[2]d"
@@ -738,7 +738,7 @@ func generateVTOrc(dbInfo externalDbInfo, keyspaceInfoMap map[string]keyspaceInf
- op: add
path: /services/vtorc
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- ".:/script"
environment:
@@ -763,7 +763,7 @@ func generateVreplication(dbInfo externalDbInfo, opts vtOptions) string {
- op: add
path: /services/vreplication
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- ".:/script"
environment:
@@ -791,7 +791,7 @@ func generateSetKeyspaceDurabilityPolicy(
- op: add
path: /services/set_keyspace_durability_policy_%[3]s
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- ".:/script"
environment:
@@ -828,7 +828,7 @@ func generateSchemaload(
- op: add
path: /services/schemaload_%[7]s
value:
- image: vitess/lite:${VITESS_TAG:-latest}
+ image: vitess/lite:v16.0.0-rc1
volumes:
- ".:/script"
environment:
diff --git a/examples/operator/101_initial_cluster.yaml b/examples/operator/101_initial_cluster.yaml
index b0ff6d467bb..a70a8decee5 100644
--- a/examples/operator/101_initial_cluster.yaml
+++ b/examples/operator/101_initial_cluster.yaml
@@ -8,14 +8,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:latest
+ vtctld: vitess/lite:v16.0.0-rc1
vtadmin: vitess/vtadmin:latest
- vtgate: vitess/lite:latest
- vttablet: vitess/lite:latest
- vtbackup: vitess/lite:latest
- vtorc: vitess/lite:latest
+ vtgate: vitess/lite:v16.0.0-rc1
+ vttablet: vitess/lite:v16.0.0-rc1
+ vtbackup: vitess/lite:v16.0.0-rc1
+ vtorc: vitess/lite:v16.0.0-rc1
mysqld:
- mysql56Compatible: vitess/lite:latest
+ mysql56Compatible: vitess/lite:v16.0.0-rc1
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/201_customer_tablets.yaml b/examples/operator/201_customer_tablets.yaml
index fbf5a95946e..dd69c6998d9 100644
--- a/examples/operator/201_customer_tablets.yaml
+++ b/examples/operator/201_customer_tablets.yaml
@@ -4,14 +4,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:latest
+ vtctld: vitess/lite:v16.0.0-rc1
vtadmin: vitess/vtadmin:latest
- vtgate: vitess/lite:latest
- vttablet: vitess/lite:latest
- vtbackup: vitess/lite:latest
- vtorc: vitess/lite:latest
+ vtgate: vitess/lite:v16.0.0-rc1
+ vttablet: vitess/lite:v16.0.0-rc1
+ vtbackup: vitess/lite:v16.0.0-rc1
+ vtorc: vitess/lite:v16.0.0-rc1
mysqld:
- mysql56Compatible: vitess/lite:latest
+ mysql56Compatible: vitess/lite:v16.0.0-rc1
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/302_new_shards.yaml b/examples/operator/302_new_shards.yaml
index 0859e8adcd5..e20aea5814b 100644
--- a/examples/operator/302_new_shards.yaml
+++ b/examples/operator/302_new_shards.yaml
@@ -4,14 +4,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:latest
+ vtctld: vitess/lite:v16.0.0-rc1
vtadmin: vitess/vtadmin:latest
- vtgate: vitess/lite:latest
- vttablet: vitess/lite:latest
- vtbackup: vitess/lite:latest
- vtorc: vitess/lite:latest
+ vtgate: vitess/lite:v16.0.0-rc1
+ vttablet: vitess/lite:v16.0.0-rc1
+ vtbackup: vitess/lite:v16.0.0-rc1
+ vtorc: vitess/lite:v16.0.0-rc1
mysqld:
- mysql56Compatible: vitess/lite:latest
+ mysql56Compatible: vitess/lite:v16.0.0-rc1
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/306_down_shard_0.yaml b/examples/operator/306_down_shard_0.yaml
index 189c951ca42..e1e9578c944 100644
--- a/examples/operator/306_down_shard_0.yaml
+++ b/examples/operator/306_down_shard_0.yaml
@@ -4,14 +4,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:latest
+ vtctld: vitess/lite:v16.0.0-rc1
vtadmin: vitess/vtadmin:latest
- vtgate: vitess/lite:latest
- vttablet: vitess/lite:latest
- vtbackup: vitess/lite:latest
- vtorc: vitess/lite:latest
+ vtgate: vitess/lite:v16.0.0-rc1
+ vttablet: vitess/lite:v16.0.0-rc1
+ vtbackup: vitess/lite:v16.0.0-rc1
+ vtorc: vitess/lite:v16.0.0-rc1
mysqld:
- mysql56Compatible: vitess/lite:latest
+ mysql56Compatible: vitess/lite:v16.0.0-rc1
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/operator.yaml b/examples/operator/operator.yaml
index 9af230a3880..bf393b07426 100644
--- a/examples/operator/operator.yaml
+++ b/examples/operator/operator.yaml
@@ -5615,7 +5615,7 @@ spec:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: vitess-operator
- image: planetscale/vitess-operator:latest
+ image: planetscale/vitess-operator:v2.9.0-rc1
name: vitess-operator
resources:
limits:
diff --git a/go/vt/servenv/version.go b/go/vt/servenv/version.go
index 31f4e26e6a7..f9893bfecc4 100644
--- a/go/vt/servenv/version.go
+++ b/go/vt/servenv/version.go
@@ -1,5 +1,5 @@
/*
-Copyright 2022 The Vitess Authors.
+Copyright 2023 The Vitess Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,9 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// THIS FILE IS AUTO-GENERATED DURING NEW RELEASES
-// DO NOT EDIT
-
package servenv
-const versionName = "16.0.0-SNAPSHOT"
+// THIS FILE IS AUTO-GENERATED DURING NEW RELEASES BY ./tools/do_releases.sh
+// DO NOT EDIT
+
+const versionName = "16.0.0-rc1"
diff --git a/java/client/pom.xml b/java/client/pom.xml
index efa409db760..5604620eb0c 100644
--- a/java/client/pom.xml
+++ b/java/client/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.0-SNAPSHOT
+ 16.0.0-rc1
vitess-client
diff --git a/java/example/pom.xml b/java/example/pom.xml
index 3436995a228..d345700713d 100644
--- a/java/example/pom.xml
+++ b/java/example/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.0-SNAPSHOT
+ 16.0.0-rc1
vitess-example
diff --git a/java/grpc-client/pom.xml b/java/grpc-client/pom.xml
index 9a5fd6ca49a..8d1b17c7316 100644
--- a/java/grpc-client/pom.xml
+++ b/java/grpc-client/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.0-SNAPSHOT
+ 16.0.0-rc1
vitess-grpc-client
diff --git a/java/jdbc/pom.xml b/java/jdbc/pom.xml
index 54321a065e5..d95bc867e55 100644
--- a/java/jdbc/pom.xml
+++ b/java/jdbc/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.0-SNAPSHOT
+ 16.0.0-rc1
vitess-jdbc
diff --git a/java/pom.xml b/java/pom.xml
index 4db3730f541..639472506ba 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -11,7 +11,7 @@
io.vitess
vitess-parent
- 16.0.0-SNAPSHOT
+ 16.0.0-rc1
pom
Vitess Java Client libraries [Parent]