vitessio

vitess: Scale MySQL Across Distributed Database Servers

Vitess is a Go-based, cloud-native system for scaling MySQL horizontally through sharding. It helps teams distribute data across database servers while keeping application queries independent of that distribution.

Stars
21.4k
Forks
2.4k
Stars, last 8 days
+14

Our take

Health score

81/100

How it is scored
Activity
80
Community
93
Issues
68
Pull requests
82

+14 stars in the last 8 days

  • Merges more pull requests than 93% of the projects we track
  • More contributors than 77% of the projects we track
  • Releases more often than 76% of the projects we track

Overview

Vitess is a distributed database system built around MySQL. It addresses the challenge of growing beyond a single database server by distributing data across multiple servers with generalized sharding.

Applications can remain agnostic to where data is stored, and teams can split or merge shards as needs change. Vitess is intended for organizations operating MySQL at a scale where managing distribution across servers is important.

Key Features

  • Horizontally scales MySQL by distributing data across multiple database servers.
  • Uses generalized sharding to support data distribution.
  • Keeps application code and queries agnostic to that distribution.
  • Supports splitting and merging shards as needs grow.
  • Provides an atomic cutover step for shard changes, described as taking a few seconds.
  • Is designed as a cloud-native distributed database system.

Use Cases

  • MySQL teams whose workload has outgrown the capacity of a single database server.
  • Organizations that need to distribute data across multiple MySQL servers while limiting changes to application queries.
  • Database operators who need to split or merge shards as data needs change.

Getting Started

Review the Vitess README and the official website for setup and usage guidance. The supplied README does not include an installation command.

Considerations

  • Vitess is specifically built around MySQL, so it is not presented as a general-purpose database layer for other database engines.
  • Operating a sharded distributed database involves managing data distribution and shard changes across multiple servers. Evaluate those operational needs before adopting it.
  • The supplied README does not provide installation steps; consult the project documentation for deployment details.

Found this useful?

Share it with someone who would like vitess.

Comparisons