SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏

携帯ソーシャルゲームを支えるサーバーサイド技術の工夫

ソーシャルゲームはデータアクセス対策が要

 一方、グリーのようなソーシャルゲームのシステムでは、Webサーバー(フロントエンドサーバーに相当)におけるすべての処理は等価で、どのサーバーがどのユーザーを担当するかは特に決まっていない(一番負荷の少ないサーバーを割り当てる)。リアルタイム性はないものの、すべてのプレイヤーが同じ世界で遊ぶことができる。

 また、構造のシンプルさゆえに負荷に応じた拡張性が高く、全体のスケーラビリティを確保するにはDBサーバーに注力して対策を講じればよい。

 ただし、ユーザーのデータがすべてDBサーバー(バックエンドサーバーに相当)に保存される性質上、DBサーバーにデータアクセスが集中し、レイテンシはどうしても上がらない特性がある。グリーでは、平均レスポンスタイムの目安を0.2秒に設定している。

グリーでのシステム構成
グリーでのシステム構成

 データアクセスの集中による問題をよく表すのが、モンスター育成バトルゲーム「モンプラ」での例だ。最近はやりの携帯ソーシャルゲームでは、「5」キーを続けて押すだけですばやくゲームが進行できるよう工夫されていることが多い。モンプラでは、冒険に出ると、元気が減って、経験値が増え、達成率が増えて、他のモンスターと遭遇することがある、とデータ更新が短期間に集中し、普通にRDBMS(グリーではMySQL)を使って実現しようとするとすぐに破綻してしまう。

 ではどう解決するか。その方法についてグリーCTOの藤本氏が詳しく解説した。

グリー株式会社 取締役 執行役員CTO プラットフォーム開発本部長 藤本真樹氏
グリー株式会社 取締役 執行役員CTO プラットフォーム開発本部長 藤本真樹氏

 RDBMSのボトルネックの要因として、CPUやメモリーI/O、ネットワークに依存するものはまれで、多くのケースがディスクI/Oに集中していることを指摘。これはデータの読み書き双方に関係する。

RDBMSのボトルネック
RDBMSのボトルネック

 特にソーシャルゲームではWriteの負荷が高く、リリース直後のアクセス集中によるサービスダウンは、ほぼこれが関係しているという。

 問題が複雑なため、解決策としてはシンプルに「ShardingによるWriteの分散」「オンメモリーファイルシステムによるディスクの代替」「キャッシュや中間データの保存によるRDBMS利用の代替」の3点を丁寧にやっていくしかないと説明した。

次のページ
Writeの分散

この記事は参考になりましたか?

イベントレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5433 2010/09/13 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー