ただし、データベースシステムの高速化を実現するポイントは、ハードウエアの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速度も加えて効果を最大化することを考えてほしい」と森山氏は説明する。
では、既存のデータベースシステムでフラッシュストレージを採用する場合、どのような場合に効果が望めるのだろうか。森山氏は、「I/O速度に大きなアドバンテージがあるフラッシュストレージでは、頻繁にトランザクションやI/Oが発生するようなケースでは大きな効果を生み、アクセス頻度が少ないケースでは効果はやや薄いと考えられる。例えば、比較的重い処理が行われるバッチ処理ではフラッシュストレージの効果が高い」として、「SAP ERP」を使ったシステムの事例を示す。
この例では、日次のバッチ処理が6時間から50分に、月次のバッチ処理が56時間から14.6時間に、月次の課金処理が36時間から12.5時間に短縮できている。
一方、OLTP(Online Transaction Processing)の場合は、処理するトランザクションの多さで効果も違ってくる。
ある海外の携帯電話会社の事例では、ハイブリッドストレージを採用していたが、ピーク時のトランザクションが激しくなり、夕方にピークが出てしまうことが課題となっていた。しかし、「ハイブリッドストレージをフラッシュストレージに入れ替えるだけで、サーバーを変更しなくても処理量が倍になった」という。
一般的には、2〜3ミリ秒のレイテンシでも十分に速い処理だが、この事例ではトラフィックが集中して次から次へとピークが訪れるため、キューがたまってしまう状態だった。そのため、フラッシュストレージに変えることによって、大きな効果を得られた。
ただし、そもそもトランザクション量が少ない場合、2〜3ミリ秒のレイテンシでも大きな問題とはならない。よって、フラッシュストレージに変えることで高速化を実現しても、目立った効果を得られない可能性が高い。この点は留意しておくべきだろう。
Copyright © ITmedia, Inc. All Rights Reserved.