単なるRAMディスクではない、インメモリデータベース基礎の基礎:メリット/デメリット、製品動向まで
メモリにデータを配置して処理するインメモリデータベース。とはいえ、単なるRAMディスクとは全く異なる。インメモリデータベースの活用には、その技術的特性を理解しておく必要がある。
プロセッサが高速になるにつれて、CPUとデータの間の待ち時間を減らすことが必要になる。その答えとして登場したのが、ローカルフラッシュストレージやPCIeフラッシュだ。さらに、フラッシュによるパフォーマンスの向上だけでは満足できない場合に選択されるのが、データを直接システムメモリに配置するオプションである。システムメモリにデータを保存すれば、データベースのパフォーマンスは最速になる。これがインメモリデータベースを利用する根拠だ。
インメモリデータベースとは
インメモリデータベースでは、データの作業セットを全てシステムメモリに配置する(SAP HANAといったシステムの場合)か、テーブルのIDに基づいてDRAMの速度の効果が最も高い作業セットの一部をシステムメモリに配置する。
インメモリデータベースを利用すれば待ち時間が少なくなり、明らかにパフォーマンスが向上する。大量のキャッシュを利用してデータベースの読み取り要求のみを最適化するシステムよりも、インメモリデータベースのパフォーマンスの方が優れている。また、キャッシュを利用するシステムよりもきめ細かな制御が可能で、ディスクメディアを主体とする従来のデータベースに比べて、データを管理する方法を最適化するチャンスがある。
全てのデータをメモリに保持すると、これまでの回転型ディスクを使用することで生じていたさまざまな問題に対処する必要がなくなる。例えば、キャッシュに置かれたデータのコピーを別途管理して、データとキャッシュのコピーを同期する必要はない。メモリ上のデータの圧縮や圧縮解除は簡単で、ディスクコピーの圧縮や圧縮解除に比べて領域を節約できる可能性もある。
単純にメモリ上にRAMディスクを作成し、この仮想ボリュームにデータベースを移動すれば同様の結果が得られるのではないだろうか? これは実現可能だが、データベースの内部アルゴリズムは、データがディスク上に存在するものとして管理するため、プリフェッチ、キャッシュ、遅延書き込みといったタスクを実行することになる。パフォーマンスの点では最適化されているとはいえず、多くのプロセッサ時間を使用する。
インメモリデータベースはRAMディスクを使用する場合と異なり、DRAM上のデータを操作することに特化したロジックを含んでいる。
ただし、システムメモリには揮発性がある。つまり、ACID(原子性、一貫性、分離性、持続性)モデルのデータベースの4つの特性のうち、3つしか満たさない。サーバの電源が落ちればデータが失われるため、インメモリデータベースはそのままでは持続性がない。
揮発性というメモリの弱点の克服
だが、揮発性の問題を克服する方法はある。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.