A map of a node's known (currently connected, and previously connected)) nodes, including itself. Here we use a Map, because we anticipate frequent lookups based on given NodeIndexs. We also expect 'frequent additions and removals of key-value pairs'
Properties:
Name | Type | Description |
---|---|---|
@keys |
module:Serl.NodeIndex | Keys in the Map should be of this type. |
@values |
described | Values in the Map should be
of the form |
counter |
Serl.NodeIndex | module:Serl.'Node#nodeMap'.counter |
Members
(static) this.nodeMap.counter
This helps us avoid duplicate Serl.NodeIndexs on the local node, when generating a Pid.
Each node must track all previously known nodes, and so we want an incrementing counter, to ensure that for any single lifetime of a node, N, every other node that ever connects to N, has a unique NodeIndex from N's point of view.
In the current implementation, the upper limit of trackable nodes connected to N in one lifetime seems to simply be the size of Node.nodeMap.counter. Here we impose a convention where the local node is index=0
Properties:
Name | Type | Description |
---|---|---|
module:Serl.'Node#nodeMap'.counter |