第3回では、アプリプラットフォームで提供される「ioDrive」搭載のデータベースサーバについて解説します。
ソーシャルアプリのレスポンスを左右するデータベース
クライアントプログラムとサーバ間で通信が発生するソーシャルアプリでは、スタンドアロンのゲームとは異なる開発の難しさがあります。特に問題となりやすいのがレスポンスでしょう。
レスポンスを左右する要因はさまざまですが、もっともボトルネックとなりやすいものとして挙げられるのがデータベースの処理です。この原因を探っていくと、実際にデータが蓄積されているHDDのパフォーマンスの低さであることが分かります。
こうした問題を解決するため、at+linkが提供するソーシャルアプリ向けの専用サーバパッケージ「アプリプラットフォーム」では、超高速なストレージである「ioDrive」を搭載したデータベースサーバを提供するプランを用意しています。
アプリプラットフォームでは5台のWebサーバが提供され、上位に位置する共用のロードバランサによって自動的に負荷分散が行われます。これらのWebサーバは、CPUにIntel Xeon L3426(1.86GHz×4コア)を採用し、4GBのメモリと500GBのSATA HDDを搭載。データベースサーバはCPUがXeon X5650(2.66GHz×6コア)、メモリが24GBであるほか、ストレージとして3台のSAS HDD(146GB/1万5000回転×2、300GB/1万回転×1)を備え、さらに160GBのioDriveが組み込まれています。
驚異的な性能をもつioDrive
ioDriveはFusion-ioが提供するストレージで、フラッシュメモリにデータを記録します。この点においては、一般的なハードディスク型SSDと同様ですが、Fusion-io アカウント エグゼクティブの大浦譲太郎氏は「ハードディスク型SSDとはアーキテクチャが異なる」と説明します。
一般的なSSDの読み込み性能は200~300MB/秒程度ですが、ioDriveは770MB/秒と倍以上の性能を実現しています。さらにそれよりもインパクトが大きいのがIOPS(Input Output Per Second)の数値です。
IOPSはストレージの性能を測る指標で、1秒間にどれだけリード/ライト命令を処理できるかを表しています。ioDriveにおけるIOPSは14万程度。通常のSSDがせいぜい数千IOPSであることを考えると、ioDriveが桁違いに高速であることが理解できます。
大浦氏によれば、このIOPS値は200本程度のHDDを束ねて利用するSANストレージと同等とのこと。HDDを使ったストレージアレイとなると、装置自体が極めて大きくなるだけでなく、導入コスト、運用コストが膨れ上がります。ioDriveはそれだけの性能をたった1枚のカードに凝縮しているというわけです。
ioDriveが高速である理由の1つに、サーバとの接続インターフェイスにPCI Express x4を利用していることが挙げられます。PCI Express 1.1の転送速度は1レーンあたり250MB/秒で、4レーンを利用するPCI Express x4では1GB/秒に達します。一方、現在多くのSSDが利用しているSerial ATAは300MB/秒、最新のRevision 3.0でも600MB/秒であり、その差は歴然としています。
なお、フラッシュメモリには、読み込みは高速だが、書き込み(書き換え)はそれほど速くないという問題があります。ioDriveはこの欠点を解消するため、つねに高速に書き込みができるようにデータの配置を最適化するアルゴリズム(グルーミング動作)が組み込まれているとのこと。
また、過去においてフラッシュメモリの寿命も欠点とされていましたが、これについてもスペックとして表示している容量よりも多くのフラッシュメモリを搭載し、予備領域を活用することによって改善されており、一般的なSSDよりも10~20倍程度の書き換え耐性寿命を実現しているということです。
ioDriveが手軽に使えるアプリプラットフォーム
データベースを高速化する手法として、現在一般的に使われているのは複数のサーバに負荷を分散するスケールアウトでしょう。ただ、サーバの数が増えれば管理負荷も増大してしまう上、故障の確率が高まるという弊害もあります。
しかしioDriveであれば、1台で極めてパフォーマンスの高いデータベース環境を構築することが可能なため、運用の手間を大幅に抑えることができます。スケールアウトさせる場合でも、台数を大幅に削減できるのは魅力でしょう。
こうしたアドバンテージは多くの企業で認められており、実際に世界最大のSNSである米Facebook、あるいはMySpaceなどといったサービスに導入されています。日本においても大手Webサイトや金融機関などで導入されており、今後もシステムのボトルネックを解消するために幅広い領域で活用されるのは間違いなさそうです。
ソーシャルアプリを提供していて、十分なレスポンスを確保できていないことに悩みを抱えているなら、ぜひioDriveを採用したアプリプラットフォームの導入を検討してみてはいかがでしょうか。