  Distributed storage systems often introduce redundancy to increase
reliability. When coding is used, the repair problem arises: if a node storing
encoded information fails, in order to maintain the same level of reliability
we need to create encoded information at a new node. This amounts to a partial
recovery of the code, whereas conventional erasure coding focuses on the
complete recovery of the information from a subset of encoded packets. The
consideration of the repair network traffic gives rise to new design
challenges. Recently, network coding techniques have been instrumental in
addressing these challenges, establishing that maintenance bandwidth can be
reduced by orders of magnitude compared to standard erasure codes. This paper
provides an overview of the research results on this topic.
