複製されたmnesiaデータベースで2つのerlangノードを実行しています。mnesiaがもう一方で実行されていないときに一方を起動しようとすると、mnesia:wait_for_tables(?TABS、?TIMEOUT)は、呼び出し元のノードでハングします。(両方のノードが実行されていない場合)もう一方がダウンしているときに一方を操作し始め、後でもう一方を起動しても正常に動作し続けることができる構造が必要です。実行していた最初のノードが、後で起動したときに更新されていることを確認する必要があります。これは必然的に私がマスターとして1つ持っている必要がありますか?
%%%編集.............................................。 ............................。
ああ、私はそれを持っています。私が使用していたデータベースには、断片化されたテーブルがいくつかありました。一部のフラグメントは、負荷分散のためにネットワーク全体に分散されていました。したがって、一方のホストのMnesiaはネットワークを介してそれらをロードしようとし、もう一方のホストのMnesiaがダウンしているため、失敗します。
これは、mnesiaマスターノードとは何の関係もないと思います。しかし、これまで使用したことがないので、同じことの重要性を理解したいと思います。それでも、私は常に分散スキーマで遊んでいます。
再度、感謝します...