ノード間のErlang ETSテーブル
質問
カスタムモジュールをかなり実行しているEjabberdサーバーがあります。私はいくつかのMnesiaテーブルを持っています、そして、これらはコードをまったく変更することなく、ノード間で簡単にコピーできることを知っています。 ETSテーブルに似た方法があるのだろうかと思っていましたか?
理想的には、ETSテーブルをMnesiaテーブルに変換することなく、まったく同じMnesiaとETSのデータを使用していくつかのマシンを実行できるのは素晴らしいことです。 (したがって、かなりの量のコードを書き直します。)
私が持っていたのは、RPCを行っていました。各ノードのETSテーブルを呼び出しましたが、これがパフォーマンスに与える影響についてはわかりませんでした。
誰かが答えを持っているなら、私に知らせてください。
解決
いいえ、ETSテーブルの内容は複製できません。
レプリケーション(およびトランザクションの安全性)は、Mnesiaデータベースアプリケーションが導入する機能であり、その実装はRAM_ONLYテーブルにETSを使用します。
他のヒント
RPC:遠いノードのETSテーブルを呼び出すことができます。
しかし、ムネシアの全体的なポイントは、あなたが遭遇しているような問題を修正することです。 複製
コードをMnesiaに変換することは、将来のための良い投資です。そして、危険ですが、いつでも使用できます mnesia:ets()
コードの変更を最小化するため。
所属していません StackOverflow