Skip to content

Vitess 2.2

Compare
Choose a tag to compare
@sougou sougou released this 31 May 20:05
· 19694 commits to main since this release
66e84fa

Vitess 2.2 brings many new features over 2.1.1.

Download

  • Server binaries are available in the Docker image "vitess/lite:v2.2".
  • Java client packages are published on Maven Central.
  • Source code is available via the tag "v2.2".

Upgrading

All Vitess 2.2 changes are backward compatible with the 2.1.1 release. Please make sure that you follow our recommended upgrade order.

Changes since the 2.1.1 Release

VTGate

  • Query normalization
  • Streamlog and plan stats
  • Instant-commit for autocommit
  • Smarter pass-through of SQL statements for unsharded keyspaces or single-shard targets.
  • Pass-through support for information_schema and dual table
  • Improved master detection (if multiple vttablets declare themselves to be master)
  • Multi-column vindexes

VTTablet

  • Heartbeat
  • Can run on a separate machine from its MySQL
  • Hot row protection for DMLs
  • Per-user transaction limits

Improved RBR support

  • Vttablet allows all ‘INSERT..ON DUPLICATE KEY’ constructs if MySQL is in RBR mode.
  • JSON support for RBR filtered replication and update stream
  • A separate flag to pass-through all DMLs without rewriting them.

New Session-based protocol with support for TargetString and autocommit

  • Legacy mode flag for those transitioning to the new behavior
  • Auth plugin

MySQL protocol behaves more like mysql

  • Autocommit is on by default, and mimics MySQL for set autocommit, begin & commit commands.
  • Support of use statement with the ability to target keyspace, shard, tablet type or a combination of those.
  • Support for CLIENT_FOUND_ROWS connection flag
  • Support streaming

New constructs:

  • SET TRANSACTION_MODE=[single,multi,2pc]
  • SELECT NEXT :n VALUES FROM seq
  • SHOW VINDEXES

Messages

  • Multi-column support
  • ACL
  • New STREAM sql syntax

More query constructs

  • Scatter aggregates, order by and limit (count and offset)
  • Cross-shard delete
  • INSERT ON DUPLICATE KEY with lookup vindexes
  • INSERT IGNORE with lookup vindexes
  • Cross-shard sorting of date/time and text columns
  • UPDATE of secondary lookup vindex columns

Vindexes

  • Autocommit support for lookup vindexes
  • Write_only support which can be used for migration
  • Keyrange support
  • Null vindex

GRPC

  • Upgrade to 1.10.0, faster and more efficient
  • Allow setting of max message size for GRPC

Misc

  • VTExplain: new tool for previewing query plans end-to-end
  • Vtqueryserver: a new mysql proxy that has all the guardrails of vttablet, but can be used directly from an app.
  • New docker-compose example
  • New kubernetes helm charts
  • Apache V2 license
  • Move to CNCF
  • Java client moved under io.vitess root
  • Query logging support to output as JSON and log to a file
  • Improved caching of topology server state at vtgate to allow queries to continue when the topo service is unavailable.
  • Optional flags to limit the time a query will wait for a connection from the pool and the total number of outstanding requests.
  • Options to redact and/or truncate sensitive queries in the debug UIs

Deprecated

  • Queryserver-config-strict-mode
  • PHP client
  • V1 toposerver scheme