Skip to content

Latest commit

 

History

History
109 lines (81 loc) · 4.89 KB

vitess.adoc

File metadata and controls

109 lines (81 loc) · 4.89 KB

Vitess

Name of project: Vitess

Description:

Vitess is a database clustering system for horizontal scaling of MySQL. It orchestrates management of MySQL instances and intermediates requests to the cluster. Using the terminology from the Pavlo and Aslett NewSQL survey article, Vitess is “sharding middleware”. By encapsulating shard-routing logic, Vitess allows application code and database queries to remain agnostic to the distribution of data onto multiple shards. You can split and merge shards as your needs change, with an atomic cutover step that is performed in seconds. Vitess also supports and automatically handles various scenarios, including master failover and data backups. Vitess has been serving all YouTube database traffic since 2011, and has grown to encompass tens of thousands of MySQL nodes. It has also gained increasing adoption in the community with about fifteen companies currently in the pipeline, some of whom have already gone into production. For more details, see the Vitess overview.

Sponsor / Advisor from TOC: Brian Grant <briangrant@google.com>

Unique Identifier: vitess

License: ALv2

Maturity Level: Incubating

Source control repositories: https://github.com/youtube/vitess

Initial Committers:

  • Sugu Sougoumarane

  • Mike Solomon

  • Alain Jobart

  • Anthony Yeh

  • Michael Berlin

Infrastructure requirements: CI, CNCF Cluster

Mailing lists

Website: http://vitess.io

Release methodology and mechanics

The current release is v2.1.1. We use the semantic versioning numbering system. The releases are announced using github’s releases feature and through a blog post. Additionally, a release involves tagging of a docker image and a Maven release of the Java client. The next major release changes the client protocols, and will be tagged 3.0.

The master branch is kept strictly stable, and we encourage users to regularly pull and deploy from it, as YouTube does. Many users have adopted this approach.

Social media accounts: N/A

Existing sponsorship:

  • Google (lead)

  • Hubspot (many core contributions)

  • Slack (many core contributions)

  • Flipkart (Java client)

  • BetterCloud (TLS support)

  • Pixel Federation (PHP client)

  • Axon

  • BetterCloud

  • FlipKart

  • HubSpot

  • Nozzle

  • Pixel Federation

  • Quiz of Kings

  • Slack

  • Square

  • Stitch Labs

  • YouTube

Statement on alignment with CNCF mission:

NoSQL storage systems were designed to scale out, but focus on unstructured and non-transactional data. However, it is complex to migrate or build applications that truly need transactions, indexes, and joins over structured data using NoSQL. Database orchestration systems such as Vitess fill that gap, and enable more applications to migrate to cloud-native architectures and to scale out. Vitess was built to be cloud-native for use within Google, and can run on Kubernetes.

External Dependencies: Full list: https://github.com/youtube/vitess/blob/master/vendor/vendor.json. Top level orgs:

  • cloud.google.com/ - ALv2

  • github.com/aws/aws-sdk-go/ - ALv2

  • github.com/beorn7/perks - MIT

  • github.com/coreos/ - ALv2

  • github.com/davecgh/go-spew - ISC (https://github.com/davecgh/go-spew/blob/master/LICENSE)

  • github.com/ghodss/yaml - MIT

  • github.com/go-ini/ini - ALv2

  • github.com/golang - ALv2

  • github.com/googleapis/gax-go - BSD3

  • github.com/gopherjs/gopherjs - BSD2

  • github.com/gorilla/websocket - BSD2

  • github.com/grpc-ecosystem - ALv2

  • github.com/hashicorp/ - MPL2 (https://github.com/hashicorp/consul/blob/master/LICENSE)

  • github.com/influxdb/influxdb - MIT

  • github.com/jmespath/go-jmespath - ALv2

  • github.com/jtolds/gls - MIT

  • github.com/mattn/go-runewidth - MIT

  • github.com/matttproud/golang_protobuf_extensions - ALv2

  • github.com/minio/minio-go - ALv2

  • github.com/olekukonko/tablewriter - MIT

  • github.com/pborman/uuid - BSD3

  • github.com/pmezard/go-difflib - BSD3

  • github.com/prometheus - ALv2

  • github.com/samuel/go-zookeeper - BSD3

  • github.com/satori/go.uuid - MIT

  • github.com/sergi/go-diff - MIT

  • github.com/smartystreets - MIT with addendum (https://github.com/smartystreets/assertions/blob/master/LICENSE.md)

  • github.com/stretchr/testify - MIT

  • github.com/tchap/go-patricia - MIT

  • github.com/yudai/gojsondiff - MIT with addendum (https://github.com/yudai/gojsondiff/blob/master/LICENSE)

  • github.com/yudai/golcs - MIT

  • golang.org/x - BSD3

  • google.golang.org/ - BSD3