Какие распределенные регистраторы процессов доступны для Erlang?

Я хотел бы скомпилировать достаточно полный список библиотек реестра распределенных процессов для Erlang.

Такие библиотеки должны поддерживать базовые операции, такие как register_name(Pid, Name) и whereis_name(Name) (и идеально registered_names/0). Имена не должны ограничиваться только атомами, и эти операции регистрации/поиска должны работать надежно надежно с несколькими узлами, участвующими в реестре (игнорируя разделы на данный момент).

До сих пор я придумал global, gproc и nprocreg. Какие другие доступны?

Ответ 1

Я бы сказал, что riak_core таков. Я использую его кольцо разделов + согласованное хеширование, чтобы найти node вместе с локальным экземпляром gproc, чтобы найти точный процесс. Таким образом, я получаю очень точный баланс между отказоустойчивостью, доступностью и скоростью.

Ответ 2

Locker используется в нескольких проектах wooga для регистрации процессов.

Riak PG является "незавершенной работой", альтернативной pg2. Исходный код также служит хорошим примером использования riak_core.

Ответ 3

Относительно Riak PG:

В основном это считалось "незавершенным", потому что это было результатом некоторых исследований, которые не были протестированы на производстве. Здесь ссылка на Erlang Workshop 13 paper.

Если у кого-то есть вопросы относительно Core или, в частности, с помощью PG, я был бы рад помочь любым возможным способом.