Skip to content
This repository has been archived by the owner on Sep 21, 2022. It is now read-only.

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
enisoc committed Apr 28, 2015
1 parent 89bf96b commit be69f63
Showing 1 changed file with 15 additions and 64 deletions.
79 changes: 15 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,94 +1,45 @@
# Vitess <p align="right">[![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)</p>

## 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

Expand Down

0 comments on commit be69f63

Please sign in to comment.