Vitess
Vitess is a database clustering system that presents many MySQL instances as one logical database. It routes queries, manages shards and replicas, and supports operational changes as a MySQL deployment grows.
itCloud native tools and technologies | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Vitess
Vitess is the layer you put around MySQL when one database server has stopped being a database and started being a small town with traffic management problems. MySQL still stores rows, indexes them, and runs local SQL. Vitess supplies the map, the junctions, and the people whose job is to move the road while cars are still using it.
The central character is VTGate, a MySQL-protocol entry point. Applications connect there instead of choosing a MySQL server themselves. VTGate reads the VSchema, routing metadata separate from table definitions, and uses a vindex to turn a query value into the shard that owns the row. The surprise is that sharding is not the same as making copies: shards hold different rows; replicas hold copies of one shard's rows. They have quite different ways of making an afternoon complicated.
A keyspace is the logical database the application sees. It can map to one MySQL database when unsharded, or several when sharded. A targeted query stays with one shard. A scatter query visits several shards and asks VTGate to gather the answers, which is useful on occasion but becomes increasingly sociable and expensive as shard count grows. Keeping related writes on one shard also avoids much of the distributed coordination needed for multi-shard transactions.
The other durable idea is that data movement is a workflow, not a teleportation spell. VReplication copies rows and streams later changes while Reshard or MoveTables prepares a new arrangement. Reads and writes switch in stages after the destination catches up and is checked. Online DDL uses the same machinery, so schema changes across shards have state, observation points, and consequences rather than a magic done button.
Read the introduction for the full component map and the reason each layer exists. Use the slides when the paths between VTGate, VTTablet, MySQL, VSchema, and topology need to stay straight in your head. The cheatsheet is the compact reference for tablet types, transactions, and workflows. Then use the practice tab to start a local cluster and see the difference between a keyspace the client sees and the shards Vitess is quietly coordinating underneath it.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://vitess.io/docs/24.0/overview/whatisvitess/
Supports
- Vitess purpose and MySQL clustering boundary
- VTGate, VTTablet, MySQL, and Topology Service responsibilities
- MySQL protocol driver compatibility
- Connection pooling, protection, failover, backup, and sharding features
- Course and reference-link orientation
- Quiz answers about MySQL and VTGate
- https://vitess.io/docs/24.0/overview/architecture/
Supports
- Server, command-line, web, and metadata-store architecture
- Unmanaged and incremental adoption paths
- Reference-link rationale for the architecture overview
- https://vitess.io/docs/24.0/concepts/
Supports
- Current concepts catalog
- Learning progression through component and data-model terminology
- Reference-link rationale for the concepts index
- https://vitess.io/docs/24.0/concepts/keyspace/
Supports
- Keyspace as a logical database
- Sharded and unsharded keyspace mappings
- Primary and replica read routing
- Quiz answer defining a keyspace
- https://vitess.io/docs/24.0/concepts/shard/
Supports
- Shard as a keyspace subset
- Primary and replica structure within a shard
- Replication lag and read-only uses
- Shard key ranges and Reshard workflow
- Quiz answers about sharding, replication, reads, and Reshard
- https://vitess.io/docs/24.0/concepts/vschema/
Supports
- VSchema role in routing and resharding
- Sharded keyspace and vindex definitions
- Sequence association
- Quiz answers about routing, identifiers, and locality
- https://vitess.io/docs/24.0/reference/features/vschema/
Supports
- Keyspace access model
- Tablet-type targeting
- Vindex, routing, and sequence behavior
- Reference-link rationale for VSchema study
- https://vitess.io/docs/faq/getting-started/components/what-is-vtgate-and-how-does-it-work/
Supports
- VTGate SQL parsing, VSchema planning, routing, and result consolidation
- VTGate stateless scaling model
- Quiz answers about VTGate and scatter routing
- https://vitess.io/docs/24.0/reference/features/topology-service/
Supports
- Topology metadata, locks, watches, and election
- etcd, ZooKeeper, and Consul backends
- Keyspace, shard, tablet, replication, and serving metadata
- https://vitess.io/docs/24.0/reference/compatibility/mysql-compatibility/
Supports
- MySQL and gRPC protocol support
- Single-shard and multi-shard transaction behavior
- Transaction modes and two-phase commit
- SQL and sharded-feature restrictions
- Auto-increment and sequence guidance
- Temporary table, database DDL, and X Dev API limits
- Compatibility reference rationale
- Quiz answers about identifiers and transaction locality
- https://vitess.io/docs/24.0/user-guides/schema-changes/ddl-strategies/
Supports
- Managed and unmanaged DDL strategies
- Preferred VReplication-based vitess strategy
- Direct and mysql strategy behavior
- Unsupported gh-ost strategy
- Quiz answer about Online DDL strategy
- https://vitess.io/docs/24.0/user-guides/schema-changes/managed-online-schema-changes/
Supports
- Online DDL scheduling, state, controls, retries, and revert behavior
- VReplication integration and failover behavior
- Reference-link rationale for Online DDL operations
- https://vitess.io/docs/24.0/user-guides/configuration-advanced/resharding/
Supports
- Supported Reshard workflow and traffic switching
- VReplication copy, catch-up, validation, and completion
- Quiz answer about destination catch-up
- Reference-link rationale for Reshard practice
- https://vitess.io/docs/24.0/user-guides/migration/
Supports
- MoveTables and migration workflow study path
- Reference-link rationale for incremental migration
- https://vitess.io/docs/24.0/get-started/
Supports
- Local install, VTTTestServer, and Kubernetes operator choices
- Production deployment alternatives
- Reference-link rationale for hands-on learning
- https://vitess.io/docs/24.0/user-guides/configuration-basic/
Supports
- Production configuration study path
- Reference-link rationale for operational readiness
- https://github.com/sindresorhus/awesome
Supports
- Required starting point for ecosystem-list discovery
- Discovery of the Awesome MySQL list
- https://github.com/shlomi-noach/awesome-mysql
Supports
- Discovery of DBeaver
- Discovery of MySQL Connector/J
- Discovery of sysbench
- Vitess placement in the MySQL sharding ecosystem
- https://dbeaver.com/docs/dbeaver/Database-driver-MySQL/
Supports
- MySQL driver connections
- Schema inspection and SQL interaction
- Awesome-link rationale for DBeaver
- https://dev.mysql.com/doc/connector-j/en/
Supports
- Java MySQL driver configuration and use
- Awesome-link rationale for Connector/J
- https://github.com/akopytov/sysbench
Supports
- Scriptable multi-threaded database benchmarking
- MySQL workload support
- Awesome-link rationale for controlled workload experiments
- https://vitess.io/docs/25.0/get-started/vttestserver-docker-image/
Supports
- Vttestserver Docker setup, keyspace and shard configuration, VTGate connection, status dashboard, and GetKeyspaces exercise
- https://www.cncf.io/reports/vitess-project-journey-report/
Supports
- Vitess project history review and timeline applicability decision
- https://planetscale.com/blog/planetscale-on-vitess
Supports
- Operational-complexity Field Note and PlanetScale landscape placement
- https://planetscale.com/blog/behind-the-scenes-how-schema-reverts-work
Supports
- Online DDL cutover and retained-state Field Notes
- https://shardingsphere.apache.org/document/current/en/reference/
Supports
- Apache ShardingSphere landscape placement
- https://www.cockroachlabs.com/docs/stable/developer-basics.html
Supports
- CockroachDB landscape placement
- https://docs.citusdata.com/
Supports
- Citus landscape placement
- https://docs.yugabyte.com/
Supports
- YugabyteDB landscape placement
- https://docs.pingcap.com/tidb/stable/
Supports
- TiDB landscape placement
