34

一部の場所では2GB期間と記載されています。一部の場所では、ノードの数に依存すると述べています。

4

3 に答える 3

67

あなたの質問が「膨大な数のテーブルで構成された mnesia データベースのストレージ容量はどれくらいか」である場合、非常に大きくなりますdisc_only_copies。使用可能なディスク容量によって大きく制限されます。

答えるのが簡単な質問は、さまざまなタイプの 1 つの mnesia テーブルの最大容量です。ram_copiesテーブルは使用可能なメモリによって制限されます。disc_copiesテーブルはdetsバックエンド ( Mnesia の Hakan Mattsson ) によって制限されています - この制限は現時点で 4Gb のデータです。

したがって、簡単な答えは、disc_copies問題が発生する前に、単純なテーブルに最大 4Gb のデータを保存できるということです。(ディスク上のサイズ制限を超えても、Mnesia は実際にはクラッシュしません。テーブルの ram_copies 部分は引き続き実行されるため、データを削除するか、実行時に他の調整を行うことでこれを修復できます) 。

ただし、他の記憶喪失機能を考慮すると、答えはより複雑になります。

  • local_contentテーブル。テーブルがテーブルの場合local_content、mnesia クラスター内の各ノードで異なるコンテンツを持つことができるため、テーブルの容量は次のとおりです。 4Gb * <number of nodes>
  • 断片化されたテーブル。Mnesia は、テーブル フラグメントを使用した、ユーザーが構成可能なテーブル パーティション分割またはシャーディングをサポートしています。この場合、テーブル内のデータを多数のプリミティブ テーブルに効果的に分散および再分散できます。これらのプリミティブ テーブルは、それぞれ独自の構成を持つことができます。たとえば、1 つの ram_copies テーブルと残りの disk_only_copies テーブルなどです。これらのプリミティブ テーブルには、前述したのと同じサイズ制限があり、断片化されたテーブルの有効容量は です4Gb * <number of fragments>。(悲しいことに、テーブルをフラグメント化する場合は、テーブル アクセス コードを変更して、友人mnesia:activity/4の代わりに使用するmnesia:write必要がありますが、事前にこれを計画していれば、管理可能です)
  • 外部コピー極端な最先端での生活が好きな場合は、mnesiaexパッチを mnesia に適用して、 Amazon S3Tokyo Cabinetなどの外部システムにテーブル データを保存できます。この場合、テーブルの容量はバックエンド ストレージによって制限されます。
于 2009-01-07T21:50:24.117 に答える
6

ドキュメントによると、これは 4GB です。セクション 11.5

http://erlang.org/faq/mnesia.html

于 2009-01-07T18:50:48.613 に答える