diff --git a/README.md b/README.md index 13ef04c1685..ba6e2d2cd0c 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,45 @@ # Vitess

[![Build Status](https://travis-ci.org/youtube/vitess.svg?branch=master)](https://travis-ci.org/youtube/vitess/builds) [![Coverage Status](https://coveralls.io/repos/youtube/vitess/badge.png)](https://coveralls.io/r/youtube/vitess)

-## Introduction +Vitess is a storage platform for scaling MySQL. +It is optimized to run as effectively in cloud architectures as it does on dedicated hardware. +It combines many important features of MySQL with the scalability of a NoSQL database. -Vitess is a set of servers and tools meant to facilitate scaling of MySQL -databases for the web. It's been developed since 2011, and is currently used as +It's been actively developed since 2011, and is currently used as a fundamental component of YouTube's MySQL infrastructure, serving thousands of -QPS (per server). If you want to find out whether Vitess is a good fit for your +QPS per server. If you want to find out whether Vitess is a good fit for your project, please visit [vitess.io](http://vitess.io). There are a couple of videos from [sougou](https://github.com/sougou) that you can watch: a [short intro](http://youtu.be/midJ6b1LkA0) prepared for Google I/O 2014 and a more [detailed presentation from @Scale '14](http://youtu.be/5yDO-tmIoXY). -## Overview - -![Overview](https://raw.githubusercontent.com/youtube/vitess/master/doc/VitessOverview.png) - -Vitess consists of a number servers, command line utilities, and a consistent -metadata store. Taken together, they allow you to serve more database traffic, -and add features like sharding, which normally you would have to implement in your -application. - -**vttablet** is a server that sits in front of a MySQL database, making it more -robust and available in the face of high traffic. Among other things, it adds a -connection pool, has a row based cache, and it rewrites SQL queries to be safer -and nicer to the underlying database. - -**vtgate** is a very light proxy that routes database traffic from your app to the -right vttablet, basing on the sharding scheme, latency required, and health of -the vttablets. This allows the client to be very simple, as all it needs to be -concerned about is finding the closest vtgate. - -The **topology** is a metadata store that contains information about running -servers, the sharding scheme, and replication graph. It is backed by a -consistent data store, like [Apache ZooKeeper](http://zookeeper.apache.org/). -The topology backends are plugin based, allowing you to write your own if -ZooKeeper doesn't fit your needs. You can explore the topology through -**vtctld**, a webserver (not shown in the diagram). - -**vtctl** is a command line utility that allows a human or a script to easily -interact with the system. - -All components communicate using a lightweight RPC system based on -[BSON](http://bsonspec.org/). The RPC system is plugin based, so you can easily -write your own backend (at Google we use a Protocol Buffers based protocol). We -provide a client implementation for three languages: Python, Go, and Java. -Writing a client for your language should not be difficult, as it's a matter of -implementing only a few API calls (please send us a pull request if you do!). - -## Trying it out - -Vitess is not entirely ready for unsupervised use yet. Some functionality is -still under development, APIs may change, and parts of the code are -undocumented. However, if you feel adventurous, you're more than welcome to try -it. We know that there are some rough edges, so please don't hesitate to reach out -to us through [our mailing list](https://groups.google.com/forum/#!forum/vitess) -if you run into any issues. Warnings aside, please take a look at our [Getting -Started](https://github.com/youtube/vitess/blob/master/doc/GettingStarted.md) -guide. - ## Documentation ### Intro * [Helicopter overview](http://vitess.io): high level overview of Vitess that should tell you whether Vitess is for you. - * [Frequently Asked Questions](https://github.com/youtube/vitess/blob/master/doc/FAQ.md). - * [Vision](https://github.com/youtube/vitess/blob/master/doc/Vision.md): - principles guiding the design of Vitess. + * [Frequently Asked Questions](http://vitess.io/doc/FAQ). ### Using Vitess - * [Getting Started](https://github.com/youtube/vitess/blob/master/doc/GettingStarted.md): + * [Getting Started](http://vitess.io/doc/GettingStarted): how to set your environment to work with Vitess. - * [Tools](https://github.com/youtube/vitess/blob/master/doc/Tools.md): + * [Tools](http://vitess.io/doc/Tools): all Vitess tools and servers. - * [vttablet/vtocc](https://github.com/youtube/vitess/blob/master/doc/vtocc.md): + * [vttablet/vtocc](http://vitess.io/doc/vtocc): information about the most important Vitess server. - * [Reparenting](https://github.com/youtube/vitess/blob/master/doc/Reparenting.md): + * [Reparenting](http://vitess.io/doc/Reparenting): performing master failover. - * [Resharding](https://github.com/youtube/vitess/blob/master/doc/Resharding.md): + * [Resharding](http://vitess.io/doc/Resharding): adding more shards to your cluster. - * [Preparing for production](https://github.com/youtube/vitess/blob/master/doc/Production.md) (wip). - * [Schema management](https://github.com/youtube/vitess/blob/master/doc/SchemaManagement.md): + * [Schema management](http://vitess.io/doc/SchemaManagement): managing your database schema using Vitess. ### Reference - * [General Concepts](https://github.com/youtube/vitess/blob/master/doc/Concepts.md) - * [Topology Service](https://github.com/youtube/vitess/blob/master/doc/TopologyService.md) - * [V3 design](https://github.com/youtube/vitess/blob/master/doc/VTGateV3.md) + * [General Concepts](http://vitess.io/doc/Concepts) + * [Topology Service](http://vitess.io/doc/TopologyService) + * [V3 design](http://vitess.io/doc/VTGateV3) ## License