DBパフォーマンス改善ソリューション【前編】ソフトウェア・アプローチでDBを高速化!~OLTP系とOLAP系に最適なDBアーキテクチャを実装~
Webサイトやモバイルアプリを通じたカスタマーチャネルの拡大、ビッグデータ活用に象徴されるデータ分析の高度化/大規模化などが急速に進む中で、DBパフォーマンス改善に対する要求は高まるばかりです。そこで重大な課題となっているのがIOのボトルネックですが、その解消手段としては大きく「ハードウェア・アプローチ」と「ソフトウェア・アプローチ」の2つがあります。 【前編】の今回はソフトウェア・アプローチに着目して解説します。
データベース処理が抱える ”I/Oボトルネック” という課題
一般的なDB処理は、大きくOLTP(Online Transaction Processing)系とOLAP(Online Analytical Processing)系の2つのタイプに分けられます。OLTP系は主に受発注処理や販売・生産管理などの業務システムにおける操作ニーズに対応したものです。処理内容そのものは単一または少数レコードの書き込みなど比較的シンプルですが、多数のユーザーからランダムに発生するトランザクションに対応しなければなりません。一方のOLAP系は大量データの集計や分析を目的とするもので、ユーザーは限定的ですが、大量レコードの一括書き込みなどの複雑な処理が発生します。
OLTP系はランダムアクセス、OLAP系はシーケンシャルアクセスを主体にするという大きな違いがありますが、両者は共通する課題も抱えています。それは性能向上を続けるCPUやメモリに対して、I/O性能の向上が期待できないHDDとの格差の拡大により生まれるI/Oボトルネック課題です。
このI/Oボトルネックを解消する手段として、大きく「ハードウェア・アプローチ」と「ソフトウェア・アプローチ」の2つがあります。
ハードウェア・アプローチではフラッシュストレージの活用が主流となっており、サーバーのPCIeスロットに直結するタイプの「Fusion ioMemory」や、共有ストレージタイプの「Pure Storage」といった製品が登場しています。
一方のソフトウェア・アプローチは、ミドルウェアの導入によってアーキテクチャを革新し、DB処理を高速化します。今回は特にソフトウェア・アプローチに着目し、OLTP系とOLAP系のそれぞれに適したDBパフォーマンスの改善策を探ってみましょう。
一般的なDB処理における特長とボトルネック
OLTP系DBに求められるリアルタイムなトランザクション処理
まずOLTP系のDB処理では、多発するランダムなトランザクションに対して、どこまでレスポンスタイムを短縮できるかが問われます。例えば、株式証券のアルゴリズム取引や通信キャリアのトラフィック制御、大規模なeコマースなどでは、マイクロ秒のオーダーでトランザクションを処理するリアルタイム性が要求されます。
こうしたシビアなレスポンスが要求される世界では、「できるだけCPUに近い場所でDBを稼働させる」ことが最優先の検討策となります。
そこで注目されているのが、インメモリデータベースです。文字どおり、DBをサーバーのメインメモリ上に常駐させて処理する仕組みで、I/Oオーバーヘッドを最小限に抑えることができます。これにより、きわめてリアルタイムに近いトランザクション処理を実現します。この代表的ソリューションとして知られるのが、「Oracle TimesTen」です。
Oracle TimesTenが特に優れているのは、Oracle DBのデータキャッシュとして利用するというスケーラブルな構成にも対応していることです。すなわち、ストレージ上で動作するOracle DBとメインメモリ上で動作するOracle TimesTenのシームレスな連携のもと、超高速かつ大規模なDBを運用することが可能となります。
もちろん、ユーザーがこうしたDBの構成を意識する必要はありません。いつもどおりにSQLやJDBC、ODBCといった標準的なインタフェースを用いて目的のデータにアクセスするだけです。IT部門は度重なるDBチューニングに手間を取られることなく、アプリケーション開発に専念することが可能となります。
OLAP系DB処理のスループットを超並列アーキテクチャで改善
一方、OLTP系ほどの高度なリアルタイム性は求められませんが、バッチ処理のスループット改善が問われるOLAP系のDBでは、より大容量のデータを扱っていく必要が生じます。こうしたOLAP系におけるDBパフォーマンス改善の要求に応えるのが、MPP(超並列処理)ならびにシェアードナッシングのアーキテクチャをソフトウェアで実装する、データウェアハウス用RDB製品の「Pivotal Greenplum Database」です。
これまでRDBを用いたデータ分析は、負荷の増加を見込んだ上で計画的に基盤を拡張リプレースしていく、いわゆるスケールアップ型の投資で行われてきました。しかし、将来的にどんな種類のデータを、どんなデータソースから集め、どんなペースでデータが増えていくのか。あるいは、どんな分析を行うことになるのかも予測できない中で、最適な投資を行うことは難しいものです。
これに対してPivotal Greenplum Databaseは、スモールスタートでデータ分析を始め、負荷変化に応じてノードを追加していくスケールアウト型の投資を可能にします。データロード、データ処理、アンロードまで超並列アーキテクチャのもとで実行し、ノードを追加するほどパフォーマンスも向上していきます。
また、自動障害検出機能や自動修復機能によりダウンタイムをほぼゼロにするなど、高度な高可用性も確保できます。Webベースのリソース監視や豊富なログレベルに対応するなど、コンプライアンス監査に容易に対応できる点も、Pivotal Greenplum Databaseのメリットの一つです。
DBパフォーマンス改善ソリューションの適用領域
今回は、DBパフォーマンス改善のためのI/Oボトルネックの解決手法として「ソフトウェア・アプローチ」に着目しました。
そして、OLTP系DBには「できるだけCPUに近い場所でDBを稼働させる」ことができるインメモリデータベースを利用した改善方法が適していることを、大容量のデータを扱うOLAP系DBには超並列アーキテクチャでの改善手法が適していることを解説しました。
【後編】ではフラッシュストレージを活用した「ハードウェア・アプローチ」について特長とメリットを詳しく解説したいと思います。