MOLStream supports several models of peer behavior:
No churn, the number of peers is stable and remains the same from the beginning to the end of the run.
<churnModel type="none" />
Allows distributions for the session length of nodes and the inter-arrival time for any two new nodes to be specified. Whenever a session ends, a node fails. The addition of new nodes is independent of the failures.
<churnModel type="sessionLengthInterArrival"> <sessionLengthDistribution> <distribution type="LogNormalDistribution" mean="4.29" variance="1.28" /> </sessionLengthDistribution> <interArrivalDistribution> <distribution type="ParetoDistribution" Xm="1.55" alpha="2.52" /> </interArrivalDistribution> </churnModel>
sessionLengthInterArrival churn model uses two distributions [Distributions]:
A distribution is specified for the session length of a node. When a session ends, the node fails and a new one joins at the same instant.
<churnModel type="sessionLengthAddOnFailure"> <sessionLengthDistribution> <distribution type="LogNormalDistribution" mean="4.29" variance="1.28" /> </sessionLengthDistribution> </churnModel>
sessionLengthAddOnFailure churn model uses a single distribution [Distributions]:
* sessionLengthDistribution - the distribution of a length of a session of a single node (in seconds)
In this model, a distribution for the session length of a node and a distribution of cooloff times. After a session ends, the node fails and a new one joins after the cooloff period.
<churnModel type="sessionLengthOffLength"> <sessionLengthDistribution> <distribution type="ExponentialDistribution" mean="20"/> </sessionLengthDistribution> <offLengthDistribution> <distribution type="ExponentialDistribution" mean="5"/> </offLengthDistribution> </churnModel>
sessionLengthOffLengthchurn model uses two distributions [Distributions]:
To support trace-driven simulation, this model parses a file describing the arrival and departure times of nodes. The nodes in the system behave as described in the file.
The file should be a tab separated table with these columns:
node id join time leave time
<churnModel type="availabilityFile"> <availabilityFile value="sopcast.avail" /> </churnModel>
availabilityFile churn model uses a single element:
* availabilityFile - path to the filename holding the join and leave times of nodes
Under this model, it is possible to define events such as nodes leaving and joining the system at specific times. This model can be used to test system under extreme scenarios such as a big group of nodes leaving or joining the system.
<churnModel type="eventBased"> <event type="departure" time="400" amount="350"/> <event type="addition" time="500" amount="300"/> </churnModel>
This churn model accepts an event element for each addition or departure event. Each event element specifies the time of the event (in seconds) and the amount of nodes for the event.