ソーシャルゲームのような高負荷がかかるWebアプリケーションにおいては、何十, 何百台ものサーバーでスケールアウトするのが当然の時代になりました。特にDBサーバーでは垂直分割、水平分割による複数のDBへの負荷の分散が行われ、アプリケーション側でハンドリングすべきことが増してきています。
今回は、Google社のyoutubeの基盤として大量のクエリを捌いているVitessを、当社のゲームにおいて実際にDBサーバーのマネージ&スケールアウトに使用した話をします。主にVitess, gRPC, MySQL/KVSとの比較, Rails/ActiveRecordにおけるデータベース分割, VitessとRails, Live Resharding周りの話です。