vitess Documentation

Vitess is a database clustering system for horizontal scaling of MySQL.

21,220 stars Go Go 1 file Β· ~1,777 tokens #cncf#database-cluster#kubernetes#mysql#shard#vitess
RAW Doc

1. Project Overview & Quickstart (vitessio/vitess)






Vitess

Vitess is a cloud-native horizontally-scalable distributed database system that is built around MySQL.
Vitess can achieve unlimited scaling through generalized sharding.

Vitess allows application code and database queries to remain agnostic to the distribution of data onto
multiple database servers. With Vitess, you can even split and merge shards as your needs
grow, with an atomic cutover step that takes only a few seconds.

Vitess was a core component of YouTube's database infrastructure
from 2011, and grew to encompass tens of thousands of MySQL nodes.
Starting in 2015, Vitess was adopted by many other large companies, including Slack, Square (now Block), and JD.com.

For more about Vitess, please visit vitess.io.

Community

Vitess has a growing community.

If you are interested in contributing or participating in our monthly community meetings, please visit the Community page on our website.

We also maintain a roadmap on our website.

Follow our blog for low-frequency updates like new features and releases.

Reporting a Problem, Issue, or Bug

To report a problem, create a GitHub issue.

For topics that are better discussed live, please join the Vitess Slack workspace.
You may post any questions on the #general channel or join some of the special-interest channels.

Security

Reporting Security Vulnerabilities

To report a security vulnerability, please email vitess-maintainers.

See Security for a full outline of the security process.

Security Audit

A third party security audit was performed by ADA Logics. Read the full report.

License

Unless otherwise noted, the Vitess source files are distributed
under the Apache Version 2.0 license found in the LICENSE file.

2. Official Technical Reference & Guides (vitessio/website)

The Vitess website

This repo houses the assets used to build the website at https://vitess.io.

Running the site locally

First install npm, then fetch dependencies, including
Hugo by running these commands:

bash
cd website
npm install

To build a development version of the site, run the following command:

bash
make build

To serve the site locally, run:

bash
make serve

View the locally served site at http://localhost:1313.

If you'd like to add your logo to the Who uses Vitess section of the website, add a PNG, JPEG, or SVG of your logo to the static/img/logos/users directory in this repo and submit a pull request with your change. Name the image file something that reflects your company (e.g., if your company is called Acme, name the image acme.png).

You can check the site's internal links by running make check-internal-links and all linksβ€”internal and externalβ€”by running make check-all-links.

CSS/SASS

The Vitess website uses Bulma, a CSS (and SASS) framework that provides all kinds of variables, utilities, and components.

Adding a new learning resources filter option

To add a new filter option, simply follow these steps:

  1. Navigate to resources.yaml file to annotate: cd data/resources.yaml.
  2. add your new filter option to all the data in the folder.
text
- youtube: uRB-Qni_bCM
    title: "Vitess: Introduction, New Features and the Vinted User Story - Florent Poinsard, Deepthi Sigireddi, PlanetScale & Kazimieras Aliulis, Vinted"
    date: 2024
    type: video
    FILTER_NAME = "filter_value"

Replace FILTER_NAME with any desired name of your choice. Same applies to the value.

  1. Navigate to the index.searchindex.json file to edit: cd layouts/_default/index.searchindex.json.
  2. Open the file and go down to line 3. You will notice the format of the data represented in a key/value pair. Just before the closing parenthesis, append your new option like this: "FILTER_NAME" $resources.FILTER_NAME.

Replace FILTER_NAME with the same name represented in the frontmatter (see step 2 above for reference).

  1. Head over to config.toml file. In the params.lunr section, you will see two arrays named vars and params. Add your new filter option's name to each of the arrays:
toml
vars = ["title", "summary", "date", "publishdate", "expirydate", "permalink", "FILTER_NAME"]
  1. Navigate to javascript.html and scroll down to where the logic for resource filter is declared. Within that scope, find where the lunr() function is being called. You will notice a callback function is being passed to the lunr() function. Within the callback function, you will also notice this.field being called with some values passed in. Append this block of code right after the last this.field function call:
javascript
this.field("FILTER_NAME");

Replace FILTER_NAME with the same name represented in the frontmatter (see step 2 above for reference).

  1. Navigate to layouts/partials/learning-resources/filter-panel.html. Locate the div with a class name of filter. Within the div, add this new block:
html
<h5>FILTER_NAME</h5>
      {{ $resources := $.Site.Data.resources.resources }}
      {{ $FILTER_NAMe := slice }}
      {{ range $resources }}
          {{ $FILTER_NAME = $years | append .FILTER_NAME }}
          {{ $FILTER_NAME = uniq $FILTER_NAME }}
      {{ end }}
      {{ range $FILTER_NAME }}
      {{ $filter := . }}
       
          
          <label for="{{ . }}">{{ . }}</label>
      
      {{ end }}

Replace FILTER_NAME with the same name represented in the frontmatter (see step 2 above for reference).

  1. Save your changes and rebuild your frontend.

Releasing a new version of the documentation

To release a new version of the documentation you can use one of the following two scripts:

  • ./tools/rc_release.sh: for RC release.

    • Takes one argument, the number of the next release.
    • Usage when releasing v16.0.0-rc1: ./tools/rc_release.sh "17"
  • ./tools/ga_release.sh: when a version becomes GA.

    • Takes one argument too, the number of the version we are making GA.
    • Usage when releasing v16.0.0 GA: ./tools/ga_release.sh "16"