インメモリ処理とは、処理で扱うデータやプログラムなどを全てメモリ上に格納し、解析・計算処理を行うことです。 数時間かかるデータ処理を数分に短縮することや、発生したデータを瞬時に処理して結果を返すというリアルタイム処理を可能にする、 この「インメモリ処理」がリンク解析、バイオインフォマティクス、データベースなどでの大量のデータ処理の効率化ではは必須となっています。
プロセッサーの処理速度とメモリのアクセス速度は、ナノ秒(1/1,0000,000,000秒)単位なのに対して、ディスクドライブのアクセス速度 は、ミリ秒(1/1,000秒)です。また、メモリアクセスのバンド幅は、>10Gbps の性能に対して、ディスクドライブでは、>1Gbps このアクセス速度とバンド幅の制限は、プロセッサが処理を行うデータの存在場所によって、その処理の速度が大きく変わることを意味します。 プロセッサとメモリの速度とのギャップを埋めるために、様々な取り組みや製品、技術が開発されてきました。しかし、メモリとの 性能差を埋めるようなブレイクスルーは現時点でも実現されていません。
インメモリ処理は、この速度ギャップを気にしないで処理を行うことを可能とします。 また、インメモリ処理は、ある意味、非常にシンプルな計算処理であり、処理自体は最も一般的なデータ処理です。
のような要因があります。 メモリの容量あたりの単価は、継続して下がってきていますが、サーバのメモリ搭載量(スロット数)と専用機の課題は、 引き続き、インメモリ処理をより廉価で容易に実現するための課題となっています。
インメモリ処理を活用することが出来れば、従来よりも圧倒的に高速にデータ処理が可能になります。また、同時に、インメモリ処理では 現在のビッグデータの処理で要求される膨大なデータ分析に対して、継続してその処理に必要なメモリ容量の要求の増大にも 対応することが必要になります。
これらに対応することが可能であれば、非構造のデータ解析や複雑なデータ分析、また、リアルタイムでデータ処理での 意思決定の高速など、ビッグデータの利用をさらに促進して、ビジネスや研究の高速化と効率化を図ることが可能となります。
ビッグデータの処理において、インメモリでデータを処理できればその処理効率は劇的に向上します。最新のテクノロジを利用しても、メモリスピード(>10Gbps)とディスクドライブ(>1Gbps)の性能ギャップは非常に大きく、大規模なデータをディスク上から順次読み込んで処理するのではなく、インメモリで処理することで処理性能を大幅に向上させることが可能となります。同時に、インメモリで処理することで、アプリケーションの処理をよりシンプルにすることも可能となり、システムの最適化などを更に進めることも可能となります。
このようなインメモリでのデータ処理で重要になるのは、サーバに搭載可能なメモリサイズとなります。メモリサイズに応じて、インメモリに展開出来るデータサイズの大きさが決まり、性能を大きく左右することにもなります。サーバに搭載可能なメモリ量については、ハードウエア的な制約とソフトウエア的な制約があります。
より多くのソケットとメモリモジュールが搭載可能なサーバは、一般的にはコストが高い
より多くのソケットを必要とする場合、ソフトウエアライセンスのコストが問題となる
大容量メモリスケーラブルサーバは、メインシステムのCPUだけがOSからは認識されます。他のノードの メモリコントローラとして利用されます。少ないソケット数での大容量メモリシステムの構築が可能となります。
アプリケーションはサーバ単体の物理メモリ容量の制約を受けないため、より大規模なデータのインメモリでの処理が可能
インメモリでデータを処理することで、ハードディスクアクセスによるデータ処理の遅延を排除し、高速にデータを処理可能
コストパフォーマンスに優れたサーバを利用し、必要なメモリサイズの構築が可能であり、幅広いサーバ製品(とベンダー)の選択肢を提供サーバの最新技術をより容易に導入可能(プロセッサ、チップセット、インターコネクトなど)