MySQLは22日、12日間にわたったMySQLのスケールアウトに関するエデュケーショナルイニシアチブ「Twelve Days of Scale-Out」が終了したことを発表した。同エデュケーショナルイニシアチブではmixiにおけるスケーリングのケーススタディなどが紹介された。
mixiは日本最大のソーシャルネットワークサービス。ユーザ間のメッセージ送受信や日記の作成ができるほか、写真の共有、コミュニティの作成などができる。有償サービスではさらに動画やミュージックといったいくつかのサービスが受けられる。こうしたシステムの基板テクノロジとしてmixiではMySQLを採用している。急成長したソーシャルネットワークサービスを支えていたインフラストラクチャがMySQLだったわけだ。
mixiがサービスインした当時、高価なソフトウェアを購入することはできないとして、LAMP(Linux、Apache、MySQL、Perl)スタックがソーシャルネットワークサービスのインフラストラクチャとして採用されている。当初は1万ユーザだった登録ユーザ数も、その後話題が話題を呼んで2007年5月21日には1,000万を越えた。質実ともに日本最大のソーシャルネットワークだ。
mixiではMySQLデータベースはプロフィール情報や日記を保持するインフラストラクチャとして採用されている。当初はひとつのMySQLサーバに対して複数のスレーブを配置するという基本アーキテクチャで動作していたが、爆発的に増え続ける登録ユーザに対応するために、より費用対効果に優れ、よりスケーラビリティの高いアーキテクチャを構築する必要があることは明らかだ。
こうした課題に対してmixiではマルチマスターシステムを開発。さらに複数のマスターをまたいで存在しているデータを垂直と水平という2レベルに分割して管理。現在では廉価なハードウェアで構成された数百にのぼるレプリケートされたMySQLデータベースシステムにシステムが配置されている。またパフォーマンスを改善するためにmemcachedも併用しているとされている。
こうして構築された新しいアーキテクチャのもと、現在でも毎月MySQLサーバファームの追加が実施されている。数に応じてライセンス料金が発生する商用プロダクトを比較して、FLOSSで提供されているソリューションはスケールアウトにおける恩恵を受けやすい。mixiの事例は、サーバを追加することで性能を向上させるスケールアウトのケーススタディとして最たるものといえるだろう。