インメモリデータベース(IMDBあるいはメインメモリデータベース、MMDB)はデータストレージを主にメインメモリ上で行うデータベース管理システムである。ディスクストレージ機構によるデータベースシステムと対比される。メインメモリデータベースは内部最適化アルゴリズムが簡素であり、相対的に少ないCPU命令を実行するので、ディスク最適化されたデータベースと比較して高速である。メモリ上でデータアクセスを行うことで、ディスクと比較し、より高速かつ安定したパフォーマンスを提供できる。通信ネットワーク機器など、応答時間が肝要であるアプリケーションにおいて、インメモリデータベースは多用されている。[1] 基本的な構成として、インメモリデータベースはデータを揮発性メモリ装置に格納する。このようなデバイスはデバイスの電源が断たれたり、リセットされた場合にすべての格納情報を失う。この場合、インメモリデータベースはACID(原子性、一貫性、独立性、永続性)特性のうち、永続性をサポートしないと言える。揮発性メインメモリベースのインメモリデータベースはACID特性の他の3特性である原子性、一貫性および独立性をサポートすることが多い。 多くのインメモリデータベースは次の機構により、永続性を追加している。 これによりデータの永続性を一部提供しているが(システム障害の際にすべてのデータが失われるわけではない)、永続性の一部である(「直近の」変更は失われる)。完全な永続性のためには、以下のいずれかによって補完される必要がある。 いくつかのインメモリデータベースではデータベーススキーマにおいてデータベースの特定の領域について異なる永続性要件を指定することができる。これにより、システムシャットダウンの後で容易に再生成できるか、意味を持たないデータについては永続性のための保持を不要にできる(ただし、高可用性のためのレプリケーションは必要である)。そして設定情報は保存が必要なものとして指定することができる。 インメモリおよびオンディスクの両テーブルを単一データベースでサポートした最初のデータベースエンジンが2003年にリリースされた。[2]この手法の利点は柔軟性にある。つまり、開発者はパフォーマンス、コスト、永続性そしてフォームファクタの間でバランスをとることができる。パフォーマンスに関して、ディスクを経由せず、メモリのみで指定のデータをソート、格納および読み出しを行うことで向上させることができる。コストに関して、廉価なハードディスクを追加メモリに代替できる。フォームファクタに関して、RAMチップは小型ハードドライブのメモリ記憶密度に劣ることがあげられる。 インメモリ/オンディスクデータベースが選ばれる別の理由として、製造時の効率が挙げられる。電子製品など、特定の製品の製造ラインにおいて、永続的ストレージが必要な製品とストレージにメモリを使用するものの混合となっている場合がある。このような例としてセットトップボックスがある。そのようなデバイスにおいてデータベースシステムを用いるとき、製造者はハイブリッドデータベースを用いることにより、製品におけるディスクの有無に応じてそれぞれインメモリデータベースとオンディスクデータベースを用いる場合より、コストを低くし、かつコードのカスタマイズ量も減らすことができる。 近年、インメモリデータベースは大手データベースベンダの注目を浴びるようになってきた。ヒューレット・パッカードからのスピンオフとして1996年にMarie-Anne Neimatにより起業されたTimesTenは2005年にオラクルに買収された。オラクルはこの製品を独立したデータベースとして、またオラクルデータベースのインメモリデータベースキャッシュの両方として発売している。IBMは2008年にSolidDBを買収し、マイクロソフトは2009年にインメモリデータベースを発売するとの予想がある。[3]大手データベースベンダ以外では、 ⇒シアンス・アールの販売するALTIBASEの導入が金融機関などで進んでいる。2010年にはヨーロッパ最大級のソフトウェア企業でありERP最大手のSAPがSAP HANAをリリースしたことで、企業のインメモリデータベースの導入が本格化し、インメモリデータベース市場が急速に拡大した。 製品名ライセンス備考
ACID準拠
スナップショットファイル、あるいはチェックポイントイメージにより特定の時点でのデータベースの状態を記録する。これは定期的に生成され、最低でもインメモリデータベースのシャットダウンが実行されたときに生成される。
トランザクションログにより、データベースへの変更をジャーナルファイルに記録し、インメモリデータベースの自動リカバリを可能にする。
不揮発性メモリ (NVRAM) では通常、バッテリ電源によりバックアップされた静的RAM(バッテリRAM)か、書き込み・消去可能なROM (EEPROM) が用いられる。このストレージを用いることにより、インメモリデータベースは再起動の際に、直近の整合性が取れている状態へデータストアを回復することができる。
高可用性による実装ではデータベースレプリケーションにより、現用データベースでの障害の際、同一のスタンバイデータベースに自動フェイルオーバーがなされる。完全なシステムクラッシュにおけるデータ損失を防ぐため、インメモリデータベースのレプリケーションは通常上記の一つ、あるいは複数の機構と併用される。
「ハイブリッド」インメモリ/オンディスクデータベース
商用製品
製品
Adaptive Server Enterprise (ASE) 15.5
Apache DerbyApache License 2.0
Altibase
BlackRay
CSQL
Datablitz