Creating a file registry service
Overview
A file registry service is a simple store of key-values pairs where keys
are files (i.e., wrench::DataFile
) and values are file locations
(i.e., wrench::FileLocation
). It is used to keep track of the
location of file copies. In real-world deployments, this service is
often called a “replica catalog”.
Creating a file registry service
In WRENCH, a file registry service is defined by the
wrench::FileRegistryService
class, an instantiation of which
requires the following parameters:
The name of a host on which to start the service; and
Maps (
std::map
) of configurable properties (wrench::NetworkProximityServiceProperty
) and configurable message payloads (wrench::NetworkProximityServiceMessagePayload
).
The example below creates an instance that runs on host
ReplicaCatalog
. Furthermore, the service is configured so that
looking up an entry takes 100 flops of computation, and so that the
message sent to the service to lookup an entry is 1KiB:
auto fr_service = simulation->add(
new wrench::FileRegistryService("ReplicaCatalog",
{{wrench::FileRegistryServiceProperty::LOOKUP_COMPUTE_COST, "0.1"}},
{{wrench::BareMetalComputeServiceMessagePayload::FILE_LOOKUP_REQUEST_MESSAGE_PAYLOAD, 1024}});
See the documentation of wrench::FileRegistryServiceProperty
and
wrench::FileRegistryServiceMessagePayload
for all possible
configuration options.