公式サイト
Vitessとは?
- MySQLをシャーディングによるスケールアウトを可能とするクラウドネイティブなデータベースクラスタ
- CNCFプロジェクト(現在はIncubation)
- Youtubeが開発(2011年からプロダクション利用)
- Go言語で開発されている
- gRPCでクライアント通信
シャーディング
- 2個以上のデータベースに分割してデータを格納
- シャードを追加することでスケールアウトを実現
Vitessのシャーディング
- Verticalシャーディング(テーブル毎にデータベースを分けて格納)
- Horizontalシャーディング(1つのテーブルを複数のシャードに分割)
Vitessの構成要素
- vtgate(アプリケーションとやりとりするプロキシサーバ)
- tablet(MySQLとvttabletのセット)
- vttablet(MySQLの前に配置されるプロキシサーバ)
- vtctld(Vitessクラスタの管理操作のHTTPサーバ)
- vtctl(Vitessクラスタの管理操作のCLI)
- Keyspace(複数のシャードを纏めた論理データベース)
参考
KubeCon + CloudNativeCon 2018 NA Recap 〜Vitess〜