class StorageServiceProxyProperty : public wrench::StorageServiceProperty

Configurable properties for a StorageService.

Public Static Attributes

static const std::string MESSAGE_OVERHEAD

The overhead for handling just 1 message.

static const std::string UNCACHED_READ_METHOD

The read behavior for an uncached message. Due to a limitation in Simgrid, it is not generally possible to say “Copy a file to this server, and at the same time read the file from that server as bytes become avaliable” As such, the copy to cache and the client read from cache have to be handled differently. There are currently 3 supported ways, specified by this property.

  • CopyThenRead: The most basic thought of how to do this. Copy the file to the cache, and then read the file from the cache once it has finished. This method means the file will always arive in the cache when it should, and all internal network links are hit with the proper amount of congestion. However, the file will arive at the client who requested it later than it should

  • MagicRead: This seeks to combat the problem with CopyThenRead by assuming the time to transfer the file from the cache to the client should be neglegable compared to the time to copy the file from remote to the cache. As such, when the file copy is finished, all clients waiting on the file instantly receive it. This means the file will always arive at the cache at the correct time, and should arrive at the client in roughly the correct time, but at the cost of network congestion accuracy

  • ReadThrough: This takes a slighly different approach, the file is transfered directly to the client, and as soon as the client has finished receiving it, the file instantly appears on the cache. This offers the most accurate file-to-client time, however, the file-to-cache time is increased, and multiple client access happens later than otherwise expected as they have to wait for the cache to update. NOTE: There must be a network route between client and remote for ReadThrough to work, and for max accuracy, it should go through the Proxy host.




File to cache time




File to client time


Probiably good


Network Congestion




Parrallel behavior

No change

Amplifies weakness

Decreased accuracy for secondary Host

Required Network Links

Proxy-Remote, Client-Proxy

Proxy-Remote, Client-Proxy

Client-Remote, Client-Proxy