2016-04-15 4 views
1

Erlang(単一ノード)に「プロセスレジストリ」を実装しているので、さまざまなフィールド/基準に基づいてユーザープロセスを検索できます。プロセスは、テーブルを管理するサーバープロセスにキャストすることによって、mnesia ramデータベースを非同期に更新します。サーバープロセスもプロセスを監視して、プロセスが予期せず終了した場合にエントリを削除することができます。Mnesiaプロセスレジストリのベストプラクティス

これは意味がありますか?各レジストリテーブルのタプルキーにrefを置くのが最善の方法ですか?私はこのパターンが比較的一般的だと考えていますが、人々はこれをどのように一般的に達成していますか(gprocとは言わないでください)?

答えて

0

理論的には、かなり意味があります。多くのプログラムには、このようなものが必要です。

実際にはローカルモードでgprocを使用してホイールを再作成しないでください。

1

Gprocでは、増加するクラスタを許可しません。新しいマシンを追加するときに再起動する必要があります。

同じ目的でsynを使用することができます。https://github.com/ostinelli/syn これは、いくつかの制限付きのmnesiaベースのプロセスレジストリです。 複数の名前に対して1つのPIDを保持できません(残念ながら)