An online backup system should be quick and
reliable in both saving and restoring users' data. To do so in
a peer-to-peer implementation, data transfer scheduling and the
amount of redundancy must be chosen wisely. We formalize the
problem of exchanging multiple pieces of data with intermittently
available peers, and we show that random scheduling completes
transfers nearly optimally in terms of duration as long as the
system is sufficiently large. Moreover, we propose an adaptive
redundancy scheme that improves performance and decreases
resource usage while keeping the risks of data loss low. Extensive
simulations show that our techniques are effective in a realistic
trace-driven scenario with heterogeneous bandwidth.