ドキュメントによると
make_ref() -> ref()
ほぼ一意の参照を返します。
返された参照は、約282回の呼び出し後に再び発生します。したがって、それは実用的な目的のために十分にユニークです。
しかし、私の目は、VMの再起動の間に同じ参照を簡単に取得できることを教えてくれます。
[~] erl
Erlang R14B04 (erts-5.8.5)
1> make_ref().
#Ref<0.0.0.33>
2> make_ref().
#Ref<0.0.0.37>
^C
[~] erl
Erlang R14B04 (erts-5.8.5)
1> make_ref().
#Ref<0.0.0.33>
では、ErlangのRefはどれほどユニークですか?タグがmqまたはdbで永続的であり、さまざまなVMセッションによって生成される可能性がある場合に、一意の「タグ」ジェネレーターとして使用するのに適していますか。
これにはUUIDを使用できることを知っています。pids()は繰り返し可能で再利用可能であり、シリアル化して永続ストレージからロードした場合、決して一意ではないこともよく知られています。
問題は、refs()とは何ですか?UUIDのようなものですか、それともpids()のようなものですか?refs()はノード間で一意ですか?再起動の合間に?このトピックに関する公式情報はありますか?