Erlang - 创建整数(分布式 pid 表示的一部分)实际上是如何创建的?
Erlang - How is the creation integer (a part of a distributed pid representation ) actually created?
在分布式 Erlang 系统中,pid 可以有两种不同的表示形式:i) internal; ii) 外部。
内部表示具有以下形状:< A.B.C >
外部表示,例如当消息必须跨越不同节点时使用的,由以下元素组成:< node_id, ID, serial, creation >
根据 official documentation。
其中node_id
为节点名称,ID
和serial
标识node_id
上的进程,creation
为一个整数,用于区分该节点与过去(崩溃)本身的版本。
我找不到的是虚拟机如何创建 creation
整数。
通过在我的 PC 上设置一个小实验,我发现如果我多次创建和杀死同一个节点,计数器总是增加 1,并且通过在不同机器上创建同一个节点,creation
整数不同,但在结构上有一些相似之处,例如:
machine 1 -> creation integer = 1647595383
machine 2 -> creation integer = 1647596018
你们中有人知道这个整数是如何创建的吗?如果是这样,您能否向我解释一下并可能参考一些(或多或少)官方文档?
creation
作为对 epmd
中节点注册的响应的一部分发送,请参阅该协议的 details。
如果您有自定义 erl_epmd
模块,您还可以提供自己创建 creation
值的方法。
原来的creation
是该名字的节点第一次注册的本地时间,以后每次名字是re-registered.
就碰撞一次
在分布式 Erlang 系统中,pid 可以有两种不同的表示形式:i) internal; ii) 外部。
内部表示具有以下形状:< A.B.C >
外部表示,例如当消息必须跨越不同节点时使用的,由以下元素组成:< node_id, ID, serial, creation >
根据 official documentation。
其中node_id
为节点名称,ID
和serial
标识node_id
上的进程,creation
为一个整数,用于区分该节点与过去(崩溃)本身的版本。
我找不到的是虚拟机如何创建 creation
整数。
通过在我的 PC 上设置一个小实验,我发现如果我多次创建和杀死同一个节点,计数器总是增加 1,并且通过在不同机器上创建同一个节点,creation
整数不同,但在结构上有一些相似之处,例如:
machine 1 -> creation integer = 1647595383
machine 2 -> creation integer = 1647596018
你们中有人知道这个整数是如何创建的吗?如果是这样,您能否向我解释一下并可能参考一些(或多或少)官方文档?
creation
作为对 epmd
中节点注册的响应的一部分发送,请参阅该协议的 details。
如果您有自定义 erl_epmd
模块,您还可以提供自己创建 creation
值的方法。
原来的creation
是该名字的节点第一次注册的本地时间,以后每次名字是re-registered.