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
Intro
Vitess
Vitess is an open-source database clustering system for scaling MySQL horizontally. It sits between your application and a fleet of MySQL servers. Your application connects through the MySQL protocol, while Vitess routes each query to the right server.
This changes where scaling logic lives. Without a database-aware routing layer, an application may need to know which server owns each row. Vitess instead describes that placement in a VSchema and applies it through VTGate. You keep the relational model and much of the MySQL interface while adding a control layer for sharding, replication, failover, and data movement.
Vitess is not a replacement storage engine. MySQL still stores the rows, maintains indexes, executes local queries, and performs replication. Vitess coordinates multiple MySQL instances and gives applications one logical entry point.
The architecture at a glance
A request follows this path:
application
↓ MySQL protocol
VTGate
↓ routed request
VTTablet
↓ local MySQL connection
MySQL
VTGate is a stateless proxy. It parses SQL, consults the VSchema, chooses one or more tablets, and combines results when a query spans shards. Applications normally connect to VTGate instead of connecting to individual MySQL servers.
VTTablet runs beside each MySQL instance. It manages query execution, connection pooling, replication-related operations, and the tablet's role in the cluster.
MySQL remains the data store. A shard normally has one primary for writes and may have replicas for reads, backup work, and other operational tasks.
The Topology Service stores small amounts of cluster metadata and provides coordination. Vitess supports etcd, ZooKeeper, and Consul as topology backends. VTGate also maintains health information from tablets, so query routing does not require a topology lookup for every request.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
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
