SHOEISHA iD

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

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

デブサミ2011セッションレポート(PR)

デブサミ2011レポート
DeNAの実装技術を紹介! 大規模Webサービスのためのデータベース技術の現在・未来

  • このエントリーをはてなブックマークに追加

 「モバゲータウン」を中心に、急成長し続けている株式会社DeNA。そのバックヤードでは、膨大数のDBサーバを安定稼働し、高速化を図り、運用を効率化するために、様々な取り組みが行なわれている。はたして、どのような指針のもと、どのような対応がなされているのか、同社統括本部 IT基盤部の松信嘉範氏が「優先順位の考え方とそれに伴う対応策」について語った。

  • このエントリーをはてなブックマークに追加

 「モバゲータウン」を中心に、急成長し続けている株式会社ディー・エヌ・エー(DeNA)。そのバックヤードでは、膨大数のDBサーバを安定稼働し、高速化を図り、運用を効率化するために、様々な取り組みが行なわれている。はたして、どのような指針のもと、どのような対応がなされているのか、同社統括本部 IT基盤部の松信嘉範氏が「優先順位の考え方とそれに伴う対応策」について語った。

株式会社ディー・エヌ・エー システム統括本部 IT基盤部 松信嘉範 氏
株式会社ディー・エヌ・エー システム統括本部 IT基盤部 松信嘉範 氏

今後のMySQLの課題はレプリケーションの並列化

 “The Best Online Database”とは、大規模Webサービスを稼働させる上で、数年前よりMySQLが提唱し、目指しているデータベースの理想型である。その要件のなかでも特に本セッションでは「高い性能」や「高い可用性」を実現するための施策と、そのために今後求められる事項についての松信氏による考察が紹介された。

 1日あたり20数億PVというMobageを支えるために、500台以上のDBサーバとそれ以上のWebサーバ、そして国内だけで3拠点のデータセンター、数百を超えるアプリケーションが稼働している。

 ソーシャルゲームなど膨大に膨れ上がるデータベースを管理する方法として、マッピングテーブル方式による「水平分割(Sharding)」が使用されている。加えて1台1台の性能向上を上げてコスト削減を図っている。松信氏は、32bit OS時代からのデータベースの性能改善の歴史について紹介し、今後のMySQLの課題はレプリケーションの並列化にあると語った。

 そしてもう一つ、大きな問題として高負荷時などに急激に性能が落ち込む「突発的な性能ダウン」を上げ、ベンチマークの数値に気をつけ、安定した製品を選択することが重要と語った。なお、データベースが1秒単位で動かなくなる「ストール」という現象があり、DeNAでどのような対策を取っているかを紹介し、大規模Webサービスのバックヤードで細やかな対応が行われていることを示唆した。

高性能化によるデータベースのトレンドについての考察

 こうしたDeNAでの現状を受け、松信氏は大規模サービスの将来を担う「PCI-Express SSD」の可能性を紹介。PCI-Express SSDは、SATA SSDの数倍のIOPSを出せるといわれており、マスターHDD+スレーブ複数インスタンスでの並列化について技術な注目が集まっているという。しかし、松信氏は「性能が欲しい環境では仮想化はまだ苦しい」評価し、さらにマスターでの利用でも費用対効果には議論の余地があると語る。そもそもアプリケーションでそこまで必要とする場合は少なく、あったとしてもスレーブが追いつかないということを指摘した。

 それでもPCI-Express SSDが台頭して性能が上がれば、台数集約によるコスト削減はもちろん、機能や可用性、耐障害性、自動化等に対する要求がより強くなる。また、全体の中でもボトルネックの場所が変わってくるという。たとえば相対的にWebサーバーやネットワークなどの別のところが問題になってくる可能性があるわけだ。

 たとえばネットワークでは、レイテンシやCPUコアの問題がある。現在はデータベースに都度の接続・切断が主流だが、接続しっぱなしにする「パーシステント・コネクション」が求められる可能性もある。ただし問題も多く、そこで解決策として「Proxy型コネクションプール」のほか、特にMySQLでの有効策として「データベースでスレッドプール」が紹介された。

 最後に松信氏は運用面での課題を挙げ、ハードウェア故障率を下げる、手動でのフェイルオーバーをなくす、レプリケーションを利用して1台あたりの作業時間を短くするなどの対応策が紹介された。

 こうした課題を見据えながら、松信氏は有用な製品や技術を見定める方法として「見る目を養うこと」の重要性を強調。ポイントとして、現場で使われ、厳しい競争下で切磋琢磨されていること、問題を真に解決する技術と実験のための技術は違うことを見定めること、そして機能の○×表やベンチマーク結果を鵜呑みにせず、正しく評価することなどをあげた。

図1:台数集約によるコスト削減効果大だが、運用ノウハウが必要
図1:台数集約によるコスト削減効果大だが、運用ノウハウが必要
図2:Webサーバからスレッドプールに接続し続けることでボトルネック回避
図2:Webサーバからスレッドプールに接続し続けることでボトルネック回避
お問い合わせ

株式会社ディー・エヌ・エー

東京都渋谷区代々木4-30-3 新宿MIDWESTビル

http://dena.jp/

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

  • このエントリーをはてなブックマークに追加
デブサミ2011セッションレポート連載記事一覧

もっと読む

この記事の著者

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

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5799 2011/03/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング