Documentation ¶
Index ¶
- type Network
- func (n *Network) CreateNode() (*Node, error)
- func (n *Network) GetNodeFromID(nodeID roachpb.NodeID) (*Node, bool)
- func (n *Network) IsNetworkConnected() bool
- func (n *Network) RunUntilFullyConnected() int
- func (n *Network) SimulateNetwork(simCallback func(cycle int, network *Network) bool)
- func (n *Network) Start()
- func (n *Network) StartNode(node *Node) error
- type Node
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Network ¶
type Network struct { Nodes []*Node Stopper *stop.Stopper // contains filtered or unexported fields }
Network provides access to a test gossip network of nodes.
func NewNetwork ¶
NewNetwork creates nodeCount gossip nodes.
func (*Network) CreateNode ¶
CreateNode creates a simulation node and starts an RPC server for it.
func (*Network) GetNodeFromID ¶
GetNodeFromID returns the simulation node associated with provided node ID, or nil if there is no such node.
func (*Network) IsNetworkConnected ¶
IsNetworkConnected returns true if the network is fully connected with no partitions (i.e. every node knows every other node's network address).
func (*Network) RunUntilFullyConnected ¶
RunUntilFullyConnected blocks until the gossip network has received gossip from every other node in the network. It returns the gossip cycle at which the network became fully connected.
func (*Network) SimulateNetwork ¶
SimulateNetwork runs until the simCallback returns false.
At each cycle, every node gossips a key equal to its address (unique) with the cycle as the value. The received cycle value can be used to determine the aging of information between any two nodes in the network.
At each cycle of the simulation, node 0 gossips the sentinel.
The simulation callback receives the cycle and the network as arguments.