From 5cbfd945bd2c0ab121b71d667b8ff299ea5e4d80 Mon Sep 17 00:00:00 2001 From: Sugu Sougoumarane Date: Fri, 10 Nov 2017 22:24:39 -0800 Subject: [PATCH 1/4] Project Proposal: Vitess Original doc: https://docs.google.com/document/d/1p7gqlpQNJpZtsolHeX6vXR4NXXwGrCMsCz8rSi5jsBA/edit# I've made some minor changes based on the formatting of the other proposals. The vendor list was very big (182 lines). So, I shortened by listing top level orgs in some cases. --- proposals/vitess.adoc | 109 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 proposals/vitess.adoc diff --git a/proposals/vitess.adoc b/proposals/vitess.adoc new file mode 100644 index 0000000..980badc --- /dev/null +++ b/proposals/vitess.adoc @@ -0,0 +1,109 @@ +== Vitess + +*Name of project*: Vitess + +*Description*: + +Vitess is a database clustering system for horizontal scaling of MySQL. Using the terminology from the link:http://db.cs.cmu.edu/papers/2016/pavlo-newsql-sigmodrec2016.pdf[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 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 link:http://vitess.io/overview/[Vitess overview]. + +*Sponsor / Advisor from TOC*: Brian Grant + +*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 + +*Issue tracker*: https://github.com/youtube/vitess/issues + +*Mailing lists* + +* https://vitess.slack.com (see https://vitess.slackarchive.io) +* https://groups.google.com/forum/#!forum/vitess + +*Website*: http://vitess.io + +*Release methodology and mechanics* + +The current release is v2.1.1. We use the link:http://semver.org/[semantic versioning] numbering system. The releases are announced using link:https://github.com/youtube/vitess/releases[github’s releases] feature and link:http://blog.vitess.io/2017/04/vitess-releases-version-21.html[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) + +*Adopters*: Source: https://github.com/youtube/vitess/blob/master/ADOPTERS.md + +* 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. NewSQL storage 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 link:http://vitess.io/getting-started/[run on Kubernetes]. + +*External Dependencies*: Full list: https://github.com/youtube/vitess/blob/master/vendor/vendor.json. Top level orgs: + +* cloud.google.com/ +* github.com/aws/aws-sdk-go/ +* github.com/beorn7/perks/quantile +* github.com/coreos/ +* github.com/davecgh/go-spew +* github.com/ghodss/yaml +* github.com/go-ini/ini +* github.com/golang +* github.com/googleapis/gax-go +* github.com/gopherjs/gopherjs/js +* github.com/gorilla/websocket +* github.com/grpc-ecosystem +* github.com/hashicorp/ +* github.com/influxdb/influxdb/client +* github.com/jmespath/go-jmespath +* github.com/jtolds/gls +* github.com/mattn/go-runewidth +* github.com/matttproud/golang_protobuf_extensions +* github.com/minio/minio-go +* github.com/olekukonko/tablewriter +* github.com/pborman/uuid +* github.com/pmezard/go-difflib +* github.com/prometheus +* github.com/samuel/go-zookeeper/zk +* github.com/satori/go.uuid +* github.com/sergi/go-diff +* github.com/smartystreets +* github.com/stretchr/testify +* github.com/tchap/go-patricia +* github.com/yudai/gojsondiff +* github.com/yudai/golcs +* golang.org/x +* google.golang.org/ + +*Other Contributors*: https://github.com/youtube/vitess/graphs/contributors From db9de08440bd049c9cfc294f12cd5bd86e9824ec Mon Sep 17 00:00:00 2001 From: Sugu Sougoumarane Date: Mon, 13 Nov 2017 22:01:04 -0800 Subject: [PATCH 2/4] add license info for dependencies --- proposals/vitess.adoc | 66 +++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/proposals/vitess.adoc b/proposals/vitess.adoc index 980badc..20eb01a 100644 --- a/proposals/vitess.adoc +++ b/proposals/vitess.adoc @@ -72,38 +72,38 @@ NoSQL storage systems were designed to scale out, but focus on unstructured and *External Dependencies*: Full list: https://github.com/youtube/vitess/blob/master/vendor/vendor.json. Top level orgs: -* cloud.google.com/ -* github.com/aws/aws-sdk-go/ -* github.com/beorn7/perks/quantile -* github.com/coreos/ -* github.com/davecgh/go-spew -* github.com/ghodss/yaml -* github.com/go-ini/ini -* github.com/golang -* github.com/googleapis/gax-go -* github.com/gopherjs/gopherjs/js -* github.com/gorilla/websocket -* github.com/grpc-ecosystem -* github.com/hashicorp/ -* github.com/influxdb/influxdb/client -* github.com/jmespath/go-jmespath -* github.com/jtolds/gls -* github.com/mattn/go-runewidth -* github.com/matttproud/golang_protobuf_extensions -* github.com/minio/minio-go -* github.com/olekukonko/tablewriter -* github.com/pborman/uuid -* github.com/pmezard/go-difflib -* github.com/prometheus -* github.com/samuel/go-zookeeper/zk -* github.com/satori/go.uuid -* github.com/sergi/go-diff -* github.com/smartystreets -* github.com/stretchr/testify -* github.com/tchap/go-patricia -* github.com/yudai/gojsondiff -* github.com/yudai/golcs -* golang.org/x -* google.golang.org/ +* 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 *Other Contributors*: https://github.com/youtube/vitess/graphs/contributors From 294fe218e589a60db97e2423dcdb68a86999058c Mon Sep 17 00:00:00 2001 From: Sugu Sougoumarane Date: Tue, 16 Jan 2018 10:13:57 -0800 Subject: [PATCH 3/4] Incorporate TOC recommended changes As proposed by @bgrant0607 in the review comments. --- proposals/vitess.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/vitess.adoc b/proposals/vitess.adoc index 20eb01a..27baebe 100644 --- a/proposals/vitess.adoc +++ b/proposals/vitess.adoc @@ -4,7 +4,7 @@ *Description*: -Vitess is a database clustering system for horizontal scaling of MySQL. Using the terminology from the link:http://db.cs.cmu.edu/papers/2016/pavlo-newsql-sigmodrec2016.pdf[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 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 link:http://vitess.io/overview/[Vitess overview]. +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 link:http://db.cs.cmu.edu/papers/2016/pavlo-newsql-sigmodrec2016.pdf[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 link:http://vitess.io/overview/[Vitess overview]. *Sponsor / Advisor from TOC*: Brian Grant From 10e65e83c441748beba21656059500d44a23947a Mon Sep 17 00:00:00 2001 From: Sugu Sougoumarane Date: Tue, 16 Jan 2018 10:52:59 -0800 Subject: [PATCH 4/4] NewSQL -> Database orchestration system --- proposals/vitess.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/vitess.adoc b/proposals/vitess.adoc index 27baebe..a303f36 100644 --- a/proposals/vitess.adoc +++ b/proposals/vitess.adoc @@ -68,7 +68,7 @@ The master branch is kept strictly stable, and we encourage users to regularly p *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. NewSQL storage 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 link:http://vitess.io/getting-started/[run on Kubernetes]. +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 link:http://vitess.io/getting-started/[run on Kubernetes]. *External Dependencies*: Full list: https://github.com/youtube/vitess/blob/master/vendor/vendor.json. Top level orgs: