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:
cd website
npm installTo build a development version of the site, run the following command:
make buildTo serve the site locally, run:
make serveView the locally served site at http://localhost:1313.
Adding a user logo
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).
Link checking
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:
- Navigate to
resources.yamlfile to annotate:cd data/resources.yaml. - add your new filter option to all the data in the folder.
- 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.
- Navigate to the
index.searchindex.jsonfile to edit:cd layouts/_default/index.searchindex.json. - 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).
- Head over to
config.tomlfile. In theparams.lunrsection, you will see two arrays namedvarsandparams. Add your new filter option's name to each of the arrays:
vars = ["title", "summary", "date", "publishdate", "expirydate", "permalink", "FILTER_NAME"]- Navigate to
javascript.htmland scroll down to where the logic for resource filter is declared. Within that scope, find where thelunr()function is being called. You will notice a callback function is being passed to thelunr()function. Within the callback function, you will also noticethis.fieldbeing called with some values passed in. Append this block of code right after the lastthis.fieldfunction call:
this.field("FILTER_NAME");Replace FILTER_NAME with the same name represented in the frontmatter (see step 2 above for reference).
- Navigate to
layouts/partials/learning-resources/filter-panel.html. Locate the div with a class name offilter. Within the div, add this new block:
<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).
- 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"