2014年09月11日 08時00分 UPDATE
特集/連載

メリット/デメリット、製品動向まで単なるRAMディスクではない、インメモリデータベース基礎の基礎

メモリにデータを配置して処理するインメモリデータベース。とはいえ、単なるRAMディスクとは全く異なる。インメモリデータベースの活用には、その技術的特性を理解しておく必要がある。

[Chris Evans,Computer Weekly]
Computer Weekly

 プロセッサが高速になるにつれて、CPUとデータの間の待ち時間を減らすことが必要になる。その答えとして登場したのが、ローカルフラッシュストレージやPCIeフラッシュだ。さらに、フラッシュによるパフォーマンスの向上だけでは満足できない場合に選択されるのが、データを直接システムメモリに配置するオプションである。システムメモリにデータを保存すれば、データベースのパフォーマンスは最速になる。これがインメモリデータベースを利用する根拠だ。

Computer Weekly日本語版 9月3日号無料ダウンロード

15019.gif

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 9月3日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。


インメモリデータベースとは

 インメモリデータベースでは、データの作業セットを全てシステムメモリに配置する(SAP HANAといったシステムの場合)か、テーブルのIDに基づいてDRAMの速度の効果が最も高い作業セットの一部をシステムメモリに配置する。

 インメモリデータベースを利用すれば待ち時間が少なくなり、明らかにパフォーマンスが向上する。大量のキャッシュを利用してデータベースの読み取り要求のみを最適化するシステムよりも、インメモリデータベースのパフォーマンスの方が優れている。また、キャッシュを利用するシステムよりもきめ細かな制御が可能で、ディスクメディアを主体とする従来のデータベースに比べて、データを管理する方法を最適化するチャンスがある。

 全てのデータをメモリに保持すると、これまでの回転型ディスクを使用することで生じていたさまざまな問題に対処する必要がなくなる。例えば、キャッシュに置かれたデータのコピーを別途管理して、データとキャッシュのコピーを同期する必要はない。メモリ上のデータの圧縮や圧縮解除は簡単で、ディスクコピーの圧縮や圧縮解除に比べて領域を節約できる可能性もある。

 単純にメモリ上にRAMディスクを作成し、この仮想ボリュームにデータベースを移動すれば同様の結果が得られるのではないだろうか? これは実現可能だが、データベースの内部アルゴリズムは、データがディスク上に存在するものとして管理するため、プリフェッチ、キャッシュ、遅延書き込みといったタスクを実行することになる。パフォーマンスの点では最適化されているとはいえず、多くのプロセッサ時間を使用する。

 インメモリデータベースはRAMディスクを使用する場合と異なり、DRAM上のデータを操作することに特化したロジックを含んでいる。

 ただし、システムメモリには揮発性がある。つまり、ACID(原子性、一貫性、分離性、持続性)モデルのデータベースの4つの特性のうち、3つしか満たさない。サーバの電源が落ちればデータが失われるため、インメモリデータベースはそのままでは持続性がない。

揮発性というメモリの弱点の克服

 だが、揮発性の問題を克服する方法はある。例えば、クラスタ化したスケールアウトデータベースでデータのコピーを別途管理する方法がある。この場合、1つ以上のスタンバイシステムに更新を複製することで稼働を継続できる。

 データベースシステムによっては、状態を維持するためにデータをディスクに定期的にコミットするものもある。そうすることで、サーバがクラッシュした場合でも、特定の時点まで復旧できるようにしている。この場合、コミットする間隔(つまり、復旧できる間隔)と、コミットのプロセスによって生じるパフォーマンスのオーバーヘッドを比較検討することになる。

 インメモリデータベースのリスクは、従来のオンライントランザクション処理(OLTP)データベースに比べて高いことから、使用するアプリケーションの種類によって警戒レベルが異なることになる。つまり、インメモリデータベース技術は一般的なOLTPアプリケーションの多くで使用が控えられることになるが、特定のデータ型や分析要件(バッチリポートなど)でトランザクションの再実行が容易になる場面が使用のターゲットになる。DRAMはまだディスクよりも高価だ。また、データの持続性を損なうことなく入出力のパフォーマンスを向上できるフラッシュよりも高価になるので、予算の点からもこの結果は納得できる。

 とはいえ、インメモリデータベース技術の継続性が認められ、導入が増えるにつれてOLTPの分野へも進出している。ビジネスでもOLTPのワークロードにSAP HANAが使用され始めている。

 さらに、Microsoft SQL Server 2014はデータベースの一部をシステムメモリに配置できる「メモリ最適化テーブル」を用意してインメモリ機能を利用できるようにすることを約束している。一方、データベース業界大手のOracleは、メインデータベースプラットフォーム用のインメモリオプションを発表している。これは、アプリケーションを変更しないで高いレベルのパフォーマンスを約束するという。

インメモリデータベース用のストレージ

 インメモリデータベースはシステムメモリ内で操作を実行するが、永続ストレージメディアに対するニーズもある。

 インメモリデータベースストレージに対する主な要件は2つだ。

続きはComputer Weekly日本語版 9月3日号にて

15019.gif

本記事は抄訳版です。全文は、以下でダウンロード(無料)できます。


Computer Weekly日本語版 最近のバックナンバー

Computer Weekly日本語版 8月20日号:Windows 9は必要なのか?

Computer Weekly日本語版 8月6日号:RAIDはもういらない

Computer Weekly日本語版 7月16日号:Windows 8をめぐる中国 vs. Microsoft


この記事を読んだ人にお薦めの関連記事

この記事を読んだ人にお薦めのホワイトペーパー

Loading

注目テーマ

ITmedia マーケティング新着記事

news077.jpg

電通が学生と企業の共創プロジェクト「βutterfly」を開発、企業向けにスポンサードプランを提供
電通は、顧客企業と学生の協働型プロジェクト「βutterfly」を開始すると発表した。β版...

news040.jpg

「インバウンド」で注目される浅草、訪日外国人観光客で賑わう理由とは?
口コミ時代のWebとソーシャルメディアは最大の武器。最小限の手間で最大の効果を発揮する...

news103.png

オムニバス、「セゾンDMP」を活用したターゲティング広告を提供
クレディセゾンの100%子会社オムニバスは、クレディセゾンが保有するクレジットカードの...