ソーシャルゲームはデータアクセス対策が要
一方、グリーのようなソーシャルゲームのシステムでは、Webサーバー(フロントエンドサーバーに相当)におけるすべての処理は等価で、どのサーバーがどのユーザーを担当するかは特に決まっていない(一番負荷の少ないサーバーを割り当てる)。リアルタイム性はないものの、すべてのプレイヤーが同じ世界で遊ぶことができる。
また、構造のシンプルさゆえに負荷に応じた拡張性が高く、全体のスケーラビリティを確保するにはDBサーバーに注力して対策を講じればよい。
ただし、ユーザーのデータがすべてDBサーバー(バックエンドサーバーに相当)に保存される性質上、DBサーバーにデータアクセスが集中し、レイテンシはどうしても上がらない特性がある。グリーでは、平均レスポンスタイムの目安を0.2秒に設定している。

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

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

特にソーシャルゲームではWriteの負荷が高く、リリース直後のアクセス集中によるサービスダウンは、ほぼこれが関係しているという。
問題が複雑なため、解決策としてはシンプルに「ShardingによるWriteの分散」「オンメモリーファイルシステムによるディスクの代替」「キャッシュや中間データの保存によるRDBMS利用の代替」の3点を丁寧にやっていくしかないと説明した。
