インメモリデータベース

インメモリデータベース（IMDBあるいはメインメモリデータベース、MMDB）はデータストレージを主にメインメモリ上で行うデータベース管理システムである。ディスクストレージ機構によるデータベースシステムと対比される。メインメモリデータベースは内部最適化アルゴリズムが簡素であり、相対的に少ないCPU命令を実行するので、ディスク最適化されたデータベースと比較して高速である。メモリ上でデータアクセスを行うことで、ディスクと比較し、より高速かつ安定したパフォーマンスを提供できる。通信ネットワーク機器など、応答時間が肝要であるアプリケーションにおいて、インメモリデータベースは多用されている。 

 ACID準拠 
基本的な構成として、インメモリデータベースはデータを揮発性メモリ装置に格納する。このようなデバイスはデバイスの電源が断たれたり、リセットされた場合にすべての格納情報を失う。この場合、インメモリデータベースはACID（原子性、一貫性、独立性、永続性）特性のうち、永続性をサポートしないと言える。揮発性メインメモリベースのインメモリデータベースはACID特性の他の3特性である原子性、一貫性および独立性をサポートすることが多い。

多くのインメモリデータベースは次の機構により、永続性を追加している。

 スナップショットファイル、あるいはチェックポイントイメージにより特定の時点でのデータベースの状態を記録する。これは定期的に生成され、最低でもインメモリデータベースのシャットダウンが実行されたときに生成される。
これによりデータの永続性を一部提供しているが（システム障害の際にすべてのデータが失われるわけではない）、永続性の一部である（「直近の」変更は失われる）。完全な永続性のためには、以下のいずれかによって補完される必要がある。

 トランザクションログにより、データベースへの変更をジャーナルファイルに記録し、インメモリデータベースの自動リカバリを可能にする。

 不揮発性メモリ (NVRAM) では通常、バッテリ電源によりバックアップされた静的RAM（バッテリRAM）か、書き込み・消去可能なROM (EEPROM) が用いられる。このストレージを用いることにより、インメモリデータベースは再起動の際に、直近の整合性が取れている状態へデータストアを回復することができる。

 高可用性による実装ではデータベースレプリケーションにより、現用データベースでの障害の際、同一のスタンバイデータベースに自動フェイルオーバーがなされる。完全なシステムクラッシュにおけるデータ損失を防ぐため、インメモリデータベースのレプリケーションは通常上記の一つ、あるいは複数の機構と併用される。

いくつかのインメモリデータベースではデータベーススキーマにおいてデータベースの特定の領域について異なる永続性要件を指定することができる。これにより、システムシャットダウンの後で容易に再生成できるか、意味を持たないデータについては永続性のための保持を不要にできる（ただし、高可用性のためのレプリケーションは必要である）。そして設定情報は保存が必要なものとして指定することができる。

「ハイブリッド」インメモリ/オンディスクデータベース
インメモリおよびオンディスクの両テーブルを単一データベースでサポートした最初のデータベースエンジンが2003年にリリースされた。この手法の利点は柔軟性にある。つまり、開発者はパフォーマンス、コスト、永続性そしてフォームファクタの間でバランスをとることができる。パフォーマンスに関して、ディスクを経由せず、メモリのみで指定のデータをソート、格納および読み出しを行うことで向上させることができる。コストに関して、廉価なハードディスクを追加メモリに代替できる。フォームファクタに関して、RAMチップは小型ハードドライブのメモリ記憶密度に劣ることがあげられる。

インメモリ/オンディスクデータベースが選ばれる別の理由として、製造時の効率が挙げられる。電子製品など、特定の製品の製造ラインにおいて、永続的ストレージが必要な製品とストレージにメモリを使用するものの混合となっている場合がある。このような例としてセットトップボックスがある。そのようなデバイスにおいてデータベースシステムを用いるとき、製造者はハイブリッドデータベースを用いることにより、製品におけるディスクの有無に応じてそれぞれインメモリデータベースとオンディスクデータベースを用いる場合より、コストを低くし、かつコードのカスタマイズ量も減らすことができる。

商用製品
近年、インメモリデータベースは大手データベースベンダの注目を浴びるようになってきた。ヒューレット・パッカードからのスピンオフとして1996年にMarie-Anne Neimatにより起業されたTimesTenは2005年にオラクルに買収された。オラクルはこの製品を独立したデータベースとして、またオラクルデータベースのインメモリデータベースキャッシュの両方として発売している。IBMは2008年にSolidDBを買収し、マイクロソフトは2009年にインメモリデータベースを発売するとの予想がある。http://www.intelligententerprise.com/channels/business_intelligence/showArticle.jhtml?articleID=210700171
大手データベースベンダ以外では、シアンス・アールの販売するALTIBASEの導入が金融機関などで進んでいる。2010年にはヨーロッパ最大級のソフトウェア企業でありERP最大手のSAPがSAP HANAをリリースしたことで、企業のインメモリデータベースの導入が本格化し、インメモリデータベース市場が急速に拡大した。

製品

 製品名  ライセンス  備考 Adaptive Server Enterprise (ASE) 15.5  Proprietary  enterprise database from Sybase)http://www.sybase.com/products/databasemanagement/adaptiveserverenterprise Apache Derby  Apache License 2.0   Altibase  Proprietary  has in-memory and disk table; HYBRID DBMS BlackRay  GNU General Public Licence (GPLv2) and BSD License   CSQL  GNU General Public Licence or proprietary   Datablitz  Proprietary  DBMS eXtremeDB  commercial product  DBMS, also check out its open source PERST dbms.  H2  Mozilla Public License or Eclipse Public License  has a memory-only mode HSQLDB  BSD license  has a memory-only mode IBM TM1  Proprietary  in-memory BI and data analysis InfiniFlux    Time Series Database InfoZoom  Proprietary  in-memory BI and data analysis KDB  Proprietary  DBMS, also supports disk based data membase  Apache License  NoSQL, hybrid MicroStrategy    in-memory BI for MicroStrategy 9 MonetDB  MonetDB License   MySQL  GNU General Public License or proprietary  has a cluster server which uses a main-memory storage engine Oracle Berkeley DB  Sleepycat License  can be configured to run in memory only Panorama    for Windows and Macintosh, both single user and server versions Polyhedra IMDB  Proprietary  relational, supports High-Availability; acquired in 2001 by ENEA QlikView    BI-tool developed by QlikTech RDM Embedded  Proprietary  including hybrid RDM Server  Proprietary  including hybrid Redis  BSD  NoSQL solidDB by IBM    including hybrid, HSB-based HA, Shared memory, embedded, XA, etc. SAP HANA  Proprietary  Database engine of the SAP In-Memory Appliance (SAP HANA) produced by SAP SQLite  Public domain  hybrid, RAM and disk dbs can be used together Starcounter    in-memory object relational dbms TimesTen by Oracle    in memory only or as a cache for Oracle Database Vertipaq  Proprietary  Microsoft PowerPivot and Microsoft Analysis Services in-memory BI engine VoltDB  GNU General Public License v3  in-memory TREX    search engine in the SAP NetWeaver integrated technology platform produced by SAP AG Xcelerix by Frontex    commercial product

 参照 

Category:データベース管理システム