サービス開始から3年余りで会員数が1000万人を超えたSNSの「mixi」。そのシステムはOSSで構築されており、データベース管理システム(DBMS)には「MySQL」を使う。急増するトラフィックをさばくために負荷分散を重ねた結果、現在ではサーバ1000台以上が連なる超分散システムへ。その中でMySQLが果たす役割とは。
ミクシィが運営するSNS「mixi」は、2007年7月末段階でユーザー数が1110万人。人が12人集まれば、1人はmixiユーザーというわけだ。ユーザーのアクティブ率(ログイン間隔が3日以内)は約62%と高く、2007年4月から6月の月間平均ページビューは117.5億に達した。日記だけでも4億件以上に上るなど、蓄積するデータ量も莫大。2004年3月のサービス開始から、わずか3年半で現在の巨大コミュニティーへと発展したのだ。
ミクシィは、「LAMP(OSのLinux、WebサーバのApache、DBMSのMySQL、開発言語のPerl、PHP、Python)」と呼ばれるWebシステム向けの標準的なオープンソースソフトウェア(以下、OSS)でシステムを自社開発し、安価なPCサーバを1000台以上連ねる超分散構成でmixiのサービスを支えている(広告配信など周辺機能では、パッケージ製品を採用している部分もある)。このmixiのケースは、MySQLを採用するWebシステムとして、間違いなく世界有数の規模といえる。
mixiの生みの親――事業企画をミクシィへ提案、当初は1人でシステムを構築していた――ともいえる取締役 最高技術責任者の衛藤 バタラ氏は、MySQL採用のいきさつを次のように振り返る。「当時は、SNSがビジネスとして成り立つかどうかも分からなかったので、コストが掛かる商用DBは頭にありませんでした。OSSとしてはPostgreSQLという選択肢もありましたが、MySQLは当時からレプリケーション機能が標準で付き、ユーザー事例などのドキュメントも豊富。サポート会社のMySQL ABも存在していたので安心でした」
もちろん開発当初は、誰もが現在のような急展開を想定できるわけがなく、この3年半、急激に増え続けるトラフィックへどのように対応するのか、バタラ氏をはじめ開発スタッフの苦労は並々ならぬものがあった。特に、MySQLのスケールを高めるのに苦労したという。
mixiはサービスを開始してから2カ月後には、ユーザー数が1万人を突破した。早くもWebサーバとDBサーバが各1台という初期構成では負荷に耐えられなくなったが、Webサーバには「DNSラウンドロビン」(1つのホスト名に複数のIPアドレス=Webサーバを割り当て)という負荷分散技術があり、サーバを増設してスケールアウトすることで、容易に対応できた。そして、MySQL標準のレプリケーション機能を使い複数のDBサーバをマスター−スレーブ構成(マスターからスレーブのデータを非同期更新)とすることで、マスターは更新専用、スレーブは参照専用として負荷分散も行った。
普通のWebサイトであれば、トラフィックの大半は参照処理のため、たとえトラフィックが増加しても参照専用のスレーブの追加で十分にスケールアウトするだろう。しかしmixiの場合、サービスの特性上、更新処理の多さが際立った。トラフィックの増加に伴い、更新処理が集中するマスターが過負荷になったほか、マスターで発生した更新を各スレーブが複製する際のオーバーヘッドで、参照処理にまで影響が出始めたのだ。
次世代生成AIで優位に立つのはMeta? Google? それともマスク氏のあの会社?
生成AI時代において、データは新たな金と言える。より人間らしい反応ができるようになる...
GoogleからTikTokへ 「検索」の主役が交代する日(無料eBook)
若年層はGoogle検索ではなくTikTokやInstagramを使って商品を探す傾向が強まっているとい...
B2B企業の市場開拓で検討すべきプロセスを定義 デジタルマーケティング研究機構がモデル公開
日本アドバタイザーズ協会 デジタルマーケティング研究機構は、B2B企業が新製品やサービ...