「モバゲータウン」を中心に、急成長し続けている株式会社ディー・エヌ・エー(DeNA)。そのバックヤードでは、膨大数のDBサーバを安定稼働し、高速化を図り、運用を効率化するために、様々な取り組みが行なわれている。はたして、どのような指針のもと、どのような対応がなされているのか、同社統括本部 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台あたりの作業時間を短くするなどの対応策が紹介された。
こうした課題を見据えながら、松信氏は有用な製品や技術を見定める方法として「見る目を養うこと」の重要性を強調。ポイントとして、現場で使われ、厳しい競争下で切磋琢磨されていること、問題を真に解決する技術と実験のための技術は違うことを見定めること、そして機能の○×表やベンチマーク結果を鵜呑みにせず、正しく評価することなどをあげた。

