アクセス数やバッチ処理時間の急増で、DBサーバーは性能向上を迫られている。できれば、KVSのようなスケールアウトできるデータストアを使いこなして適用したい。そのようなニーズに応えるため、SQLを使えるスケールアウト型データベースソフトが続々と登場している。
ここ最近、スケールアウト型SQLデータベースの新製品や新版が続々と登場している。各製品で共通しているのは(1)標準SQLを使える、(2)処理量の増加にサーバーを容易に追加して対応できる、という二つの特徴だ。
スケールアウト型SQLデータベースが登場している背景には、DBシステムに対する拡張性とスキル面の大きく二つのニーズがある(図1)。拡張性のニーズとは「アクセス数や処理量の急増に柔軟に対応したい」というもの。消費者向けECサイトや期間限定のイベントサイトなど、短期間でアクセス数が大きく変動するシステムが増え、それらを滞りなく処理することが強く求められるようになっている。
例えばクラウド事業者であるパイプドビッツが2011年、AKB48総選挙用のシステムを開発したときは、毎秒1万件のアクセスが集中しても安定稼働できることが要件だった。
CPUやメモリーの追加で性能を高めるのには限界があり、ディスクを共有した複数のDBサーバーで処理を負荷分散させるDBクラスターも「サーバーの台数を増やしていくと、性能が頭打ちになる」(パイプドビッツ 執行役員 スパイラル開発本部長 林哲也氏)という恐れがあった。サーバー間で排他制御の情報をやり取りする処理が増えたり、共有ディスクへの同時書き込みが発生したりするからだ。
「想定以上のアクセスが来ても、サーバーの台数に比例した性能を確保できるようにする必要があった」(林氏)。そこで採用したのが、スケールアウト型SQLデータベースの一つ、米VoltDBのVoltDBだ。
夜間バッチ処理でも性能が問題に
処理量急増の問題は、企業内の業務システムでも起こっている。特に販売実績などの集計や分析のために、レコードの並べ替えやテーブルの結合といったバッチ処理を夜間に実施するシステムで直面している。
業務システムの活用度が増すことで、DBサーバーが管理するデータの量や種類が年々増加。それによって夜間のバッチ処理にかかる時間が長引くようになってきた。EMCジャパンの仲田聰氏(グリーンプラム事業本部 テクノロジー&プロフェッショナルサービス部 部長)は「DBサーバーからバッチ処理だけを切り出して、複数サーバーで分散処理させたいというニーズは高まっている」と話す。
複数サーバーで分散処理させる手段として、KVS(Key-Value Store)に注目が集まっている。ところがここでスキル面の問題がある。KVSでは一般に、RDBMSのようにテーブル間の関連を定義したり、テーブル間の結合処理をしたりすることができない。こうした制約を踏まえてKVSを活用できるITエンジニアは少ないため、「従来のスキルで扱える、スケールアウト可能なデータストアが現場では求められている」(NEC 第三ITソフトウェア事業部 技術主管 北澤敦氏)。