2011-03-16 59 views
11

我想爲Erlang編譯一個合理完整的分佈式進程註冊庫的列表。Erlang有哪些分佈式過程註冊表?

此類庫需要支持基本操作,如register_name(Pid, Name)whereis_name(Name)(理想情況下爲registered_names/0)。名稱不應僅限於原子,並且這些註冊/查找操作需要在多個節點參與註冊表的情況下合理可靠地工作(現在忽略分區)。

到目前爲止,我已經拿出global,gprocnprocreg。其他人可用?

+0

你釘了明顯的。我認爲很多Erlang系統在代碼中也包含它們自己的變體,但它們通常不適用於一般設置。 – 2011-03-16 16:25:55

+0

如果源代碼可用,我很樂意查看自定義註冊表。我已經在ejabberd上做了一堆工作,所以除此之外:) – archaelus 2011-03-16 17:56:02

+0

我想gen_leader上的自定義內容(如gproc)。一般來說,註冊是一個數據庫..所以尋找一些強大的一致性數據庫。 – user425720 2011-03-16 23:17:36

回答

4

我會認爲riak_core就是這樣。我使用它的分區環+一致性散列查找節點,以及本地gproc實例以查找確切的進程。因此,我在容錯,可用性和速度之間取得了非常好的平衡。

+0

如果你鏈接到一個github項目,我會給你投票:)但是對於我的目的,我並不是非常感興趣的是什麼_could_被用來實現一個,我對公開可用的工作實現感興趣。 – archaelus 2012-04-01 01:24:43

+0

對不起,這是一個商業項目,屬於我的僱主:(。 但是,根據你對「公開可用的工作實施」的要求,我認爲你運氣不錯(就像我一樣),因爲我敢說,沒有好的分佈式進程註冊表可用,而且不要誤解我的意思,我絕不會說Ulf Wieger的工作是廢話!相反,這是一個巨大的貢獻,但它沒有「足夠」地用於任何實際生產系統,至少不需要在大型集羣中需要速度和可用性。 – loxs 2012-04-03 17:31:37

3

Lockerwooga的幾個項目中用於註冊過程。

Riak PG是pg2的「工作進行中」替代方案。源代碼也是如何使用riak_core的一個很好的例子。

1

關於PG了Riak:

它主要被認爲是「正在進行的工作」,因爲它是一些研究,這不是在生產測試的結果。這是一個鏈接到Erlang Workshop 13 paper

如果任何人有任何關於Core的問題,或者特別使用了PG,我會很樂意幫助我做到。