  Distributed storage systems provide large-scale reliable data storage
services by spreading redundancy across a large group of storage nodes. In such
a large system, node failures take place on a regular basis. When a storage
node breaks down, a replacement node is expected to regenerate the redundant
data as soon as possible in order to maintain the same level of redundancy.
Previous results have been mainly focused on the minimization of network
traffic in regeneration. However, in practical networks, where link capacities
vary in a wide range, minimizing network traffic does not always yield the
minimum regeneration time. In this paper, we investigate two approaches to the
problem of minimizing regeneration time in networks with heterogeneous link
capacities. The first approach is to download different amounts of repair data
from the helping nodes according to the link capacities. The second approach
generalizes the conventional star-structured regeneration topology to
tree-structured topologies so that we can utilize the links between helping
nodes with bypassing low-capacity links. Simulation results show that the
flexible tree-structured regeneration scheme that combines the advantages of
both approaches can achieve a substantial reduction in the regeneration time.
