  We examine the problem of creating an encoded distributed storage
representation of a data object for a network of mobile storage nodes so as to
achieve the optimal recovery delay. A source node creates a single data object
and disseminates an encoded representation of it to other nodes for storage,
subject to a given total storage budget. A data collector node subsequently
attempts to recover the original data object by contacting other nodes and
accessing the data stored in them. By using an appropriate code, successful
recovery is achieved when the total amount of data accessed is at least the
size of the original data object. The goal is to find an allocation of the
given budget over the nodes that optimizes the recovery delay incurred by the
data collector; two objectives are considered: (i) maximization of the
probability of successful recovery by a given deadline, and (ii) minimization
of the expected recovery delay. We solve the problem completely for the second
objective in the case of symmetric allocations (in which all nonempty nodes
store the same amount of data), and show that the optimal symmetric allocation
for the two objectives can be quite different. A simple data dissemination and
storage protocol for a mobile delay-tolerant network is evaluated under various
scenarios via simulations. Our results show that the choice of storage
allocation can have a significant impact on the recovery delay performance, and
that coding may or may not be beneficial depending on the circumstances.
