3

大量のカスタムモジュールが実行されているejabberdサーバーがあります。私はいくつかのmnesiaテーブルを持っており、コードをまったく変更することなく、これらをノード間で簡単にコピーできることを知っています。etsテーブルで同様の方法があるかどうか疑問に思いましたか?

理想的には、etsテーブルをmnesiaテーブルに変換しなくても、まったく同じmnesiaおよびetsデータで複数のマシンを実行できると便利です。(したがって、かなりの量のコードを書き直します。)

1つは、各ノードのetsテーブルでrpc:callを実行していましたが、これがパフォーマンスに与える影響については確信が持てませんでした。

誰か答えがあれば教えてください。

4

2 に答える 2

9

いいえ、etsテーブルの内容を複製することはできません。

レプリケーション(およびトランザクションの安全性)は、mnesiaデータベースアプリケーションが導入する機能であり、その実装ではram_onlyテーブルにetsを使用します。

于 2009-11-22T07:07:06.563 に答える
3

離れたノードのetsテーブルでrpc:callを実行できます。

しかし、mnesiaの要点は、発生している問題の種類を修正することです:レプリケーション

コードをmnesiaに変換することは、将来のための良い投資です。mnesia:ets()リスクはありますが、コードの変更を最小限に抑えるためにいつでも使用できます。

于 2009-11-22T07:14:10.323 に答える