Creating a network proximity service

Overview

A network proximity service answers queries regarding the network proximity between hosts. The service accomplishes this by periodically performing round-trip network transfer experiments between hosts, keeping a record of observed network transfer times, and computing network distances.

Creating a network proximity service

In WRENCH, a network proximity service is defined by the wrench::NetworkProximityService class, an instantiation of which requires the following parameters:

The example below creates an instance that runs on host Networkcentral, and can answer network distance queries about hosts Host1, Host2, Host3, and Host4. The service's properties are customized to specify that the service performs network transfer experiments on average every 60 seconds, that the Vivaldi algorithm is used to compute network coordinates, and that the message sent to the service to lookup an entry is configured to be 1KiB:

See the documentation of wrench::NetworkProximityServiceProperty and wrench::NetworkProximityServiceMessagePayload for all possible configuration options.

static const std::string NETWORK_PROXIMITY_MEASUREMENT_PERIOD
The inter-measurement period (in seconds) to be used (default: 60)
Definition: NetworkProximityServiceProperty.h:37
std::shared_ptr< T > add(T *t)
Method to add a service to the simulation.
Definition: Simulation.h:73
static const std::string NETWORK_DB_LOOKUP_REQUEST_MESSAGE_PAYLOAD
The number of bytes in the message sent to the service to request a proximity value lookup.
Definition: NetworkProximityServiceMessagePayload.h:24
A network proximity service that continuously estimates inter-host latencies and can be queried for s...
Definition: NetworkProximityService.h:26
static const std::string NETWORK_PROXIMITY_SERVICE_TYPE
The type of network proximity implementation to be used:
Definition: NetworkProximityServiceProperty.h:31