特集
» 2015年09月02日 05時00分 公開

フラッシュストレージで、このデータベースは速くなる? ならない?データベース高速化のいま(1)(2/3 ページ)

[原田美穂,@IT]

将来に向けて大きく変更するか、いまあるシステムをいま速くするか

 ただし、データベースシステムの高速化を実現するポイントは、ハードウエアのI/O性能だけではない。データベースソフトウエアとの相性や、その後の運用なども併せて考える必要がある。

 その一つの解として挙げられるのが、特定のデータベースソフトウエアに特化してパフォーマンスが最大化するように構成された「データベースアプライアンス」や、特定のデータベースソフトウエアに特化した専用サーバー/ネットワーク/ストレージを使って、システム全体を構成・チューニング済みの状態で提供する「垂直統合型データベースシステム」だ。これらを採用すれば、データベースソフトウエアをチューニングする手間を省けたり、専用の管理ツールによってストレージ運用管理などを効率化したりすることができる。

 一方、既存システムの改修を最小減にとどめ、ストレージI/Oの改善を目指すのであれば、既存のストレージをオールフラッシュストレージに置き換えながら、CPUやメモリとのバランスを調整する方法が最もシンプルだといえる。

 ただ、ヴァイオリンの森山氏によると、「フラッシュストレージによってストレージI/O性能を高めるアプローチは、経営層には一定の認知を得ているが、データベースソフトウエアによる性能改善に注力してきた現場データベース管理者(Database Adoministrator:DBA)にはそうした発想は浸透し切っていない。フラッシュストレージの導入よりも、多くのデータベースミドルウエアで実装が進む、インメモリデータベース機能に注目するDBAが多い」(森山氏)という。

 だがインメモリデータベース機能は、「参照」には高い効果が期待できるが、構成によってはログの「書き込み」に時間がかかることがある。このため、読み込み/書き込み処理がミックスするような場合は、ログのI/Oが課題となる場合もある。従って、こうしたケースでも、既存のデータベースのストレージをフラッシュストレージに置き換えた上で、インメモリデータベースに段階的に移行することによって、「驚くほどの高速化を実現した事例がある」(森山氏)という(下図)。

 この事例は「Windows Storage Server」の機能と連携して性能を高めたフラッシュストレージである「Violin Windows Flash Array(WFA)」を導入したケースだ。

 この場合は、WFAを導入しただけで1秒間に45万5000行の処理が1320万行と約30倍となり、インメモリのカラムストア圧縮インデックスのパフォーマンスを最大化させることによって1秒間に2億1100万行と約464倍の高速化を実現している。

 インメモリデータベースでボトルネックとなるログの書き込み速度がフラッシュストレージで解消されるため、「現場DBAには、データベースの機能で高速化を行うだけでなく、ストレージのI/O速度も加えて効果を最大化することを考えてほしい」と森山氏は説明する。

トランザクションの多いOLTPとバッチ処理に強いフラッシュストレージ

 では、既存のデータベースシステムでフラッシュストレージを採用する場合、どのような場合に効果が望めるのだろうか。森山氏は、「I/O速度に大きなアドバンテージがあるフラッシュストレージでは、頻繁にトランザクションやI/Oが発生するようなケースでは大きな効果を生み、アクセス頻度が少ないケースでは効果はやや薄いと考えられる。例えば、比較的重い処理が行われるバッチ処理ではフラッシュストレージの効果が高い」として、「SAP ERP」を使ったシステムの事例を示す。

 この例では、日次のバッチ処理が6時間から50分に、月次のバッチ処理が56時間から14.6時間に、月次の課金処理が36時間から12.5時間に短縮できている。

SAPシステムにおけるバッチ処理速度の改善例

 一方、OLTP(Online Transaction Processing)の場合は、処理するトランザクションの多さで効果も違ってくる。

 ある海外の携帯電話会社の事例では、ハイブリッドストレージを採用していたが、ピーク時のトランザクションが激しくなり、夕方にピークが出てしまうことが課題となっていた。しかし、「ハイブリッドストレージをフラッシュストレージに入れ替えるだけで、サーバーを変更しなくても処理量が倍になった」という。

応答待ちの発生割合を示すグラフ フラッシュストレージに置き換えた水曜日以降は、待ち時間がほとんどなくなっている
I/Oレイテンシのグラフ SQL文を処理するレイテンシも2〜3ミリ秒かかっていたものが、水曜日以降は0.3ミリ行前後に改善されている

 一般的には、2〜3ミリ秒のレイテンシでも十分に速い処理だが、この事例ではトラフィックが集中して次から次へとピークが訪れるため、キューがたまってしまう状態だった。そのため、フラッシュストレージに変えることによって、大きな効果を得られた。

 ただし、そもそもトランザクション量が少ない場合、2〜3ミリ秒のレイテンシでも大きな問題とはならない。よって、フラッシュストレージに変えることで高速化を実現しても、目立った効果を得られない可能性が高い。この点は留意しておくべきだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。