Menu

Churn Models

Alex Libov

Churn Models

MOLStream supports several models of peer behavior:

none

No churn, the number of peers is stable and remains the same from the beginning to the end of the run.

<churnModel type="none" />
sessionLengthInterArrival

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]:

  • sessionLengthDistribution - the distribution of a length of a session of a single node (in seconds)
  • interArrivalDistribution - the distribution of the time between two arrivals of nodes (in seconds)
sessionLengthAddOnFailure

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)

sessionLengthOffLength

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]:

  • sessionLengthDistribution - the distribution of a length of a session of a single node (in seconds)
  • offLengthDistribution- the distribution of the time (seconds) after a failure of a node and before a new one joins instead.
availabilityFile

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

eventBased

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.


Related

Wiki: Distributions
Wiki: Experiment Description XML