Menu

Experiment Description XML

Alex Libov

Experiment description XML is an XML file describing a single experiment.

example:
<experiment>
    <name value="csComparison"/>
    <nodes value="200"/>
    <playbackSeconds value="720"/>
    <runs value="5"/>
    <uploadBandwidthDistribution>
        <distribution type="ConstantDistribution" value="5560000.0"/>
    </uploadBandwidthDistribution>
    <serverUploadBandwidth value="5560000"/>
    <messageHeaderSize value="64"/>
    <seed value="12345678"/>
    <descriptions value="1"/>
    <cycleLength value="1000"/>
    <churnModel type="none">
    </churnModel>
    <skipIfNoChunk />
    <enableTextLogger />
    <debugSeed value="1242" />
    <startupBuffering value="4000"/>
    <serverStartup value="10000"/>
    <streamWindowSize value="120"/>
    <framework value="PeerSimFramework" dropRate="0.01" minDelay="200" maxDelay="400" />
    <bitrate value="500000"/> <!-- 500 kbps --> 
    <streamingAlgorithm algorithm="CoolStreaming">
        <overlayAlgorithm algorithm="CoolStreamingOverlay" H="200" M="2" c="1" 
                    amountToSend="3" exploreRound="30" gossipTimeout="6" >
            <clusteringAlgorithm algorithm="FullCluster"/>
        </overlayAlgorithm>
    </streamingAlgorithm>
</experiment>
name

The name attribute specifies the name of the experiment.
A directory with such name will be created and will store the experiment results.

nodes

The nodes attribute sets the size of the P2P network - the amount of nodes that will be created.

playbackSeconds

The playbackSeconds attribute sets the amount of seconds to run.

runs

The runs attribute sets the numbers of runs to perform this experiment. the results are then averaged overall runs.

uploadBandwidthDistribution

Sets the distribution of bandwidth (in bits per second) of peers. [Distributions]

serverUploadBandwidth

The upload bandwidth of the server node (in bits per second).

messageHeaderSize

The simulated size of a header of a message sent in the system.

streamWindowSize

This is the size (in seconds) of the window each client holds, and tries to fill when using pull methods.

bitrate

Amount of bits that every second of the movie takes up.

seed

This seed is used to generate different seed for every run. a run with a specific seed must always generate the same results.

descriptions

The amount of descriptions (MDCs) to be used by the system.

cycleLength

The length of a cycle between two consecutive calls to nextCycle functions.

churnModel

The churn model that is to be used during the run. [Churn Models]

skipIfNoChunk

If this element is present, whenever a chunk that should be played is not present - it is skipped. Otherwise, the client would wait for the missing chunk.

enableTextLogger

Enables the text logger logging all messages.

debugSeed

If present, the system will perform a single run with the secified seed. Used for debugging.

startupBuffering

The time in milliseconds that a node waits after joining the system and before starting playback.

serverStartup

The time in milliseconds that the server waits after joining the system and before starting content generation and streaming.

streamingAlgorithm

The algorithm to be used inside the cluster. different streaming algorithms may have different parameters and expect different child nodes. [Streaming Algorithms]


Related

Wiki: Churn Models
Wiki: Distributions
Wiki: Home
Wiki: Streaming Algorithms