All Articles

Vitess

公式サイト

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〜