1

私は最近 MMDB システムを調査してきましたが、インメモリ データベースがどのようにスケーリングされるかについて多くの情報を見つけることができませんでした。私の非常に基本的な仮定は、メイン メモリ データベースは、データベース ノードで使用可能なメモリと、このメモリのオペレーティング システム管理によって制約されるということです。では、使用可能なメイン メモリのサイズを超えてインメモリ システムのサイズを拡張するにはどうすればよいでしょうか。答えは分散システムに沿っていると思いますが、それがどのように機能するかは頭の中ではっきりしていません。そしてもちろん、私が mmdb の考え方を完全に誤解していて、明らかな何かが欠けている可能性もあります。

質問の背景: 私は多くのクロスプラットフォーム モバイル アプリを作成しています (私のバックグラウンドは mysql と mongodb に深く関わっていますが)、Android と ios の sqlite のようなネイティブ データベース ソリューションは好きではありません。だから私は自分のソリューション( sitegithub )をjavascriptで書くと思った(私はcordova/phonegapに取り組んでいます)。これをnodejsモジュールにしてWebアプリのdbとして使えることに気づきました(実験的にそれを使ったブログを作っていて、かなりうまくいっています)が、もちろん今は作ることを考えています。それは別の層であり、メモリサイズの明らかな制限について考え始めたので、私の質問です。

4

2 に答える 2

2

現在の実稼働可能なインメモリ データベースは、スケールアウトではなく、主にスケールアップに重点を置いています。これまでのところ、彼らはメイン メモリ層をコアの既存のアーキテクチャ (Blu アクセラレーションを介した IBM) に統合するか、データベースをほぼゼロから再構築して、メイン メモリをプライマリ ストレージ レイヤとして活用する (SAP HANA) かのいずれかです。 、そしてどちらの場合も、彼らの名声は、ディスクと比較して DRAM が提供する明らかなスピードアップです。

ただし、現在のところ、インメモリ パフォーマンスの利点を複数のノードにわたってスケールアウトする完全な製品を備えているデータベースはほとんどありません。ほとんどのインメモリ データベースでは、アプリケーションがノード間でデータ/オブジェクトの分散を管理する必要があります (例: SAP HANA)。

Oracle の DBIM と MemSQL は、現時点ではいくつかのスケーラブルで分散されたオプションであり、クラスタ (Oracle の場合は RAC) 全体でメモリ リソースを集合的に使用することにより、分散インメモリ データベース/層を実装します。MemSQL は、コモディティ コンピューティング ノードのクラスターにデプロイでき、メモリなどの集合リソースを利用してスケーリングすると主張しています。Oracle RAC は共有キャッシュ アーキテクチャであり、従来のシェアード ナッシングおよび共有ディスク アプローチの制限を克服して、インメモリの利点を含む高度にスケーラブルで可用性の高いデータベース ソリューションを提供します。

于 2015-01-24T21:28:51.310 に答える