2

レプリケーションなしで Mnesia を実行できるかどうか知りたいです。ノードのクラスターがあり、ノードの 1 つがディスク コピーを含む mNesia サーバーをホストしているとします。このノードを mNode と呼びます。残りのノード (サービス ノード) は、mNode からスキーマをロードする必要があり、ローカル コピーを維持する必要はありません。

mNesia のドキュメントを見ましたが、それを行う方法が見つかりませんでした。

4

2 に答える 2

2

ドキュメントhttp://www.erlang.org/doc/apps/mnesia/Mnesia_chap5.html#id76406 Disc-less Nodes セクションで、このユース ケースの実装方法について説明しています。以下の手順でそのような環境をセットアップします。

 1. Start mNode
 erl -sname m_node -mnesia dir "/tmp/funky/"

 2.Start Service node
 erl -sname s1

 3. Create Cluster 
 net_adm:ping('s1@_)').

 4. On m_node run 
  mnesia:change_config(extra_db_nodes, ['s1@_']).  
  mnesia:create_table(funky, []).

 5. On s1 node 
   mnesia:start().
   mneisa:info().

  remote             = [funky]     // Points to Remote table funky on node m_node
  ram_copies         = [schema]    // Ram copy of schema is kept in each service node.
于 2013-10-10T15:19:40.340 に答える
2

はい!すべてのノードに対してスキーマを作成しますが、m_node に RAM/ディスクのコピーのみを持つようにテーブルを定義します。このようにして、それらはすべてのノードからアクセスできますが、データを保存するのは 1 つのみです。

于 2013-10-09T21:18:35.163 に答える