インメモリデータベース(IMDb、メインメモリデータベースシステム(MMDB)、メモリ常駐データベース)は、コンピュータのデータ保存に主にメインメモリを使用するデータベース管理システムです。ディスクストレージメカニズムを採用するデータベース管理システムとは対照的です。インメモリデータベースは、ディスクアクセスがメモリアクセスよりも遅く、内部最適化アルゴリズムが単純でCPU命令の実行回数が少ないため、ディスク最適化データベースよりも高速です。メモリ内のデータにアクセスすることで、データのクエリ時のシーク時間がなくなり、ディスクよりも高速で予測可能なパフォーマンスが得られます。 [ 1 ] [ 2 ]
通信ネットワーク機器やモバイル広告ネットワークなど、応答時間が重要なアプリケーションでは、メインメモリデータベースがよく使用されます。[ 3 ] IMDBは、主に大容量メモリを処理できるマルチコアプロセッサと安価なRAMのおかげで、2000年代半ばから 特にデータ分析分野で大きな注目を集めています。[ 4 ] [ 5 ]
インメモリデータストレージにおける潜在的な技術的ハードルは、RAMの揮発性です。特に、意図的か否かに関わらず電源喪失が発生した場合、揮発性RAMに保存されたデータは失われます。[ 6 ]不揮発性ランダムアクセスメモリ技術の導入により、インメモリデータベースは電源喪失時でもフルスピードで動作し、データを維持できるようになります。[ 7 ] [ 8 ] [ 9 ]
ACIDサポート
最も単純な形態では、メインメモリデータベースは揮発性メモリデバイスにデータを保存します。これらのデバイスは、電源が失われたりリセットされたりすると、保存されているすべての情報を失います。この場合、IMDBはACID(原子性、一貫性、独立性、耐久性)特性のうち「耐久性」の部分をサポートしていないと言えます。揮発性メモリベースのIMDBは、原子性、一貫性、独立性という他の3つのACID特性をサポートでき、多くの場合、実際にサポートしています。
多くの IMDB では、次のメカニズムを通じて耐久性が追加されています。
- スナップショットファイル、またはチェックポイントイメージは、特定の時点におけるデータベースの状態を記録します。システムは通常、定期的に、または少なくともIMDbが制御されたシャットダウンを行う際に、これらのファイルを生成します。これらのファイルはデータの永続性(システムクラッシュ時にデータベースのすべてのデータが失われないという意味)を確保しますが、耐久性は部分的(「最近の」変更が失われるため)です。完全な耐久性を実現するには、以下のいずれかを補完する必要があります。
- トランザクション ログは、データベースへの変更をジャーナル ファイルに記録し、メモリ内データベースの自動回復を容易にします。
- 不揮発性DIMM(NVDIMM)は、DRAMインターフェースを備えたメモリモジュールで、不揮発性データのセキュリティを確保するためにNANDフラッシュと組み合わせられることが多い。初期のNVDIMMソリューションは、バックアップ電源としてバッテリーではなくスーパーキャパシタを採用して設計されていた。このストレージにより、IMDbは再起動時に元の状態から安全に再開できる。
- 不揮発性ランダムアクセスメモリ(NVRAM)。通常は、バッテリー電源でバックアップされたスタティックRAM(バッテリーRAM)または電気的に消去可能なプログラマブルROM( EEPROM )の形態をとります。このストレージにより、再起動するIMDbシステムは、データストアを最後の一貫性のある状態から復元できます。
- データベースレプリケーションを活用した高可用性実装。プライマリデータベースに障害が発生した場合、同一のスタンバイデータベースへの自動フェイルオーバーが行われます。システム全体のクラッシュが発生した場合のデータ損失を防ぐため、通常、上記のメカニズムの1つ以上に加えて、IMDbのレプリケーションが使用されます。
一部の IMDB では、データベース スキーマを使用して、データベースの選択された領域に対して異なる耐久性要件を指定できます。そのため、簡単に再生成できるデータやシステムのシャットダウン後に意味を持たなくなる、変化の速いデータは耐久性のためにジャーナル化する必要はありません (ただし、高可用性のためには複製する必要があります)。一方、構成情報は保存が必要であるというフラグが付けられます。
ディスク上のデータベースとのハイブリッド
データをメモリ内に格納するとパフォーマンス上の利点が得られるものの、データ保存方法としてはコストがかかります。メモリ内ストレージのメリットを最大限に活かしつつコストを抑える方法としては、最も頻繁にアクセスされるデータをメモリ内に、残りをディスクに保存する方法があります。どのデータをメモリ内に保存し、どのデータをディスクに保存するかは明確に区別できないため、一部のシステムでは、データの使用状況に応じてデータの保存場所を動的に更新します。[ 10 ]この方法は、最も頻繁にアクセスされるデータをメモリ内に保存するのではなく、最近アクセスされたデータをキャッシュするキャッシュとは微妙に異なります。
ハイブリッド アプローチの柔軟性により、次のバランスを実現できます。
- パフォーマンス(指定されたデータをディスクではなくメモリ内で完全にソート、保存、取得することで向上します)
- コストは、より安価なハードディスクをより多くのメモリの代わりに使用できるためである。
- 粘り強さ
- RAMチップは小型ハードドライブの密度に近づくことができないため、フォームファクタが小さい
クラウドコンピューティング業界では、この点におけるデータの保存方法を説明するために、「データ温度」、あるいは「ホットデータ」と「コールドデータ」という用語が登場しています。[ 11 ]ホットデータは、頻繁にアクセスする必要があるミッションクリティカルなデータを指すのに対し、コールドデータは、アーカイブや監査目的で保存されるデータなど、必要頻度や緊急性が低いデータを指します。ホットデータは、高速な検索と変更を可能にする方法で保存する必要があり、多くの場合インメモリストレージで実現されますが、必ずしもそうとは限りません。一方、コールドデータはより費用対効果の高い方法で保存でき、データアクセスはホットデータに比べて遅くなることが知られています。これらの説明は有用ですが、「ホット」と「コールド」には具体的な定義がありません。[ 11 ]
製造効率も、インメモリ/オンディスクデータベースシステムの組み合わせを選択するもう一つの理由です。特に民生用電子機器などの一部のデバイス製品ラインには、永続ストレージを備えたユニットと、ストレージにメモリを使用するユニット(セットトップボックスなど)が含まれています。このようなデバイスにデータベースシステムが必要な場合、メーカーは、ディスクレス製品とディスクベース製品にそれぞれ個別のインメモリデータベースとオンディスクデータベースを使用するよりも、低コストと高コスト、そしてコードのカスタマイズを最小限に抑えたハイブリッドデータベースシステムを採用できます。
単一のデータベースでメモリ内テーブルとディスク上のテーブルの両方をサポートする 最初のデータベース エンジンである WebDNA は、1995 年にリリースされました。
ストレージメモリ
もう一つのバリエーションは、サーバーに大容量の不揮発性メモリを搭載することです。例えば、ディスクアレイではなく、アドレス指定可能なメモリとしてフラッシュメモリチップを使用します。この形式のメモリに格納されたデータベースは、非常に高速なアクセス速度と、再起動や電源喪失時の持続性を兼ね備えています。[ 12 ]
注目すべきインメモリデータベース
- SAP HANA:これは列指向のインメモリデータベースであり、データをディスクではなくメモリに保存します。メインメモリに列形式でデータを保存するとされており、オンライン分析処理(OLAP)とオンライントランザクション処理(OLTP)の両方を同一システムでサポートします。[ 13 ]
- Oracle TimesTen:これはメモリ最適化されたリレーショナルデータベースであり、マイクロ秒単位の応答と非常に高いスループット性能を実現すると主張しています。[ 14 ]
参照
注記
- ^ 「定義:インメモリデータベース」 WhatIs.com . 2013年1月19日閲覧。
- ^ Michael Vizard. 「インメモリデータベースの台頭」 . Slashdot. 2013年2月1日時点のオリジナルよりアーカイブ。 2013年1月19日閲覧。
- ^ 「TeleCommunication SystemsがTimesTenの再販業者として契約、モバイル事業者と通信事業者は位置情報サービス向けリアルタイムプラットフォームを獲得」 Business Wire 2002年6月24日
- ^ 「RAM価格の下落がインメモリデータベース需要の急増を促進」 SAP。2013年11月4日時点のオリジナルよりアーカイブ。 2013年1月19日閲覧。
- ^ 「インメモリデータベースの台頭が幅広い職種に影響を与える」 Dice.com 、 2012年7月13日。
- ^ Steel, Chris (2015年2月18日). 「インメモリコンピューティング:停電時に何が起こるのか?」 . 2017年3月10日閲覧。
- ^歴史的に、RAM は永続的なデータ ストアとして使用されていなかったため、このようなインスタンスでのデータ損失は問題になりませんでした。不揮発性メモリによるシステム全体の永続性http://research.microsoft.com/apps/pubs/default.aspx?id=160853
- ^ NAND フラッシュメモリの暗い未来http://research.microsoft.com/apps/pubs/default.aspx?id=162804
- ^ AGIGARAM NVDIMM はシステム障害時でもデータを保存https://www.embedded.com/electronics-products/electronic-product-reviews/real-time-and-performance/4422291/AGIGARAM-NVDIMM-saves-data-through-system-failure
- ^ Brust, Andrew (2013年5月8日). 「Teradata、インテリジェントなインメモリ戦略に参入」 . ZDNet . 2017年7月28日閲覧。
- ^ a b Clancy, Molly (2023年8月10日). 「What's the Diff: Hot and Cold Data Storage」 . 2017年7月28日閲覧。
- ^メラー、クリス(2013年1月30日)「まさにストレージの黄金時代だ」 The Register誌。
- ^ 「SAP HANAとは?」 SAP . 2024年8月1日閲覧。
- ^ 「Oracle TimesTen インメモリ データベース」。
参考文献
- ジャック・ベルツァー(1980年4月)。コンピュータサイエンスとテクノロジー百科事典- 第14巻:大規模データベースシステムからゼロメモリとマルコフ情報源まで。Marcel Dekker Inc. ISBN 978-0-8247-2214-2。