close Warning: BrowserModule failed with ConfigurationError: Look in the Trac log for more information.

Changes between Version 1 and Version 2 of OverSimChurn


Ignore:
Timestamp:
Aug 28, 2008, 4:51:42 PM (16 years ago)
Author:
stkrause
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OverSimChurn

    v1 v2  
    11== OverSim and Churn ==
    2 OverSim uses churn generators for simulating non-static networks. The different churn generators simulate different user behaviour and can be configured individually.
     2OverSim uses churn generators for simulating non-static networks. The different churn generators simulate different user behaviour and can be configured individually. Note: all churn generators use an "init phase" where nodes will be added to the network until targetOverlayTerminalNum is reached: On average every "initialMobilityDelay" seconds, one node will be added; measurements will start after all nodes have joined the network.
    33
    44=== Churn Generators ===
    5 * '''NoChurn''' (will be added in the next release)
     5* '''!NoChurn''' (will be added in the next release)
    66   * Node behaviour: No churn. Nodes will be added until targetOverlayTerminalNum is reached; after that, the network will remain static.
    77   * Parameters: None
    8 * '''RandomChurn'''
     8* '''!RandomChurn'''
    99   * Node behaviour: In fixed intervalls a random number is drawn. Depending on this number, a random node is either added, deleted or migrated.
    1010   * Parameters:
     
    1212       * creationProbability, migrationProbability, removalProbability: Changes the probability of the actions taken when a number is drawn. Example: ''creationProbability=0.5, removalProbability=0.5, migrationProbability=0''. In this case, every ''targetMobilityDelay'' seconds a node is added or  removed with a probability of 50%. Other example: ''creationProbability=0.6, removalProbability=0.4, migrationProbability=0''. In this example, nodes are created with a probability of 60% and removed with a probability of 40%. This will result in a constantly growing network.
    1313      * Notes: This churn generator can be used to simulate static networks if all probabilities are set to 0.
    14 * '''LifetimeChurn'''
     14* '''!LifetimeChurn'''
    1515   * Node behaviour: On creation of a node, his lifetime will be drawn randomly from a given probability function. When this time is reached, the node is removed. A new node will be created after a ''dead time'' drawn from the same probability function.
    1616   * Parameters:
    1717      * lifetimeMean: The mean lifetime.
    1818      * lifetimeDistName: The function used for drawing the lifetimes (default: weibull)
    19 * '''ParetoChurn'''
    20    * Node behaviour: Similar to LifetimeChurn, a node's lifetime is drawn on creation. However, this is done in a two-stepped process. For details, please read ''Yao, Z.; Leonard, D.; Wang, X. & Loguinov, D. "Modeling Heterogeneous User Churn and Local Resilience of Unstructured P2P Networks" Proceedings of the 2006 14th IEEE International Conference on Network Protocols, 2006. ICNP '06. 2006, pp. 32--41''
     19* '''!ParetoChurn'''
     20   * Node behaviour: Similar to !LifetimeChurn, a node's lifetime is drawn on creation. However, this is done in a two-stepped process. For details, please read ''Yao, Z.; Leonard, D.; Wang, X. & Loguinov, D. "Modeling Heterogeneous User Churn and Local Resilience of Unstructured P2P Networks" Proceedings of the 2006 14th IEEE International Conference on Network Protocols, 2006. ICNP '06. 2006, pp. 32--41''
    2121   * Parameters:
    2222      * lifetimeMean: The mean lifetime.
    2323      * deadtimeMean: The mean deadtime.
    2424   * Notes: This churn generator results in heavy tailed session times similar to empirical results from P2P filesharing networks or MMOGs.
     25
     26=== Using multiple churn generators ===
     27In some simulation scenarios you might feel the need to use multiple churn generators in a single run, for example when you have two clases of nodes that act differently. You can do this by specifying multiple churn generators, seperated by a single space. You can then configure each churn generator seperately by using "**![0]." as prefix for parameters valid for nodes controlled by the first churn generator, "**![1]" for the second, and so on.
     28
     29'''Example''':
     30We want to use PubSubMMOG, a protocoll that relies on a central lobby server for some tasks, but uses peer-to-peer techniques for everything else. This lobby server is assumed to be fail save, all other clients will join or leave the network frequently. This implies we need two different churn generators: One for the lobby server, one for the rest of the network.
     31
     32{{{
     33**.churnGeneratorTypes = "RandomChurn LifetimeChurn"
     34**[0].overlayType = "OverlayPubSubLobby"
     35**[0].tier1Type = "TierDummy"
     36**[0].initialMobilityDelay=1
     37**[0].creationProbability=0.0
     38**[0].migrationProbability=0.0
     39**[0].removalProbability=0.0
     40**[0].targetOverlayTerminalNum=1
     41**[1].overlayType = "OverlayPubSubMMOG"
     42**[1].targetOverlayTerminalNum=10
     43**[1].lifetimeMean=1000
     44**[1].tier1Type = "SimpleGameClientModules"
     45}}}
     46
     47Here "!RandomChurn" and "!LifetimeChurn" are used. Random churn creates one single node (''**![0].targetOverlayTerminalNum=1'') that will remain static (''**![0].creationProbability=0.0 **![0].migrationProbability=0.0 **![0].removalProbability=0''). This node will use the "!OverlayPubSubLobby" overlay module. The other nodes will be managend by !LifetimeChurn. There will be an average of 10 these nodes (''**![1].targetOverlayTerminalNum=10''). They will stay for average 1000 seconds (''**.![1].lifetimeMean=1000'') and use "OverlayPubSubMMOG" as overlay module, and "!SimpleGameClientModules" as tier 1 application.