In distributed storage systems (DSS) data is reliably stored over a network of nodes in such a way that a user can retrieve the stored data even if some nodes fail.To achieve such a resilience against node failures DSS introduce data redundancy based on different coding techniques. For example, erasure codes are widely used in such systems. When a single node fails, the system reconstructs the data stored in the failed node to keep the required level of redundancy.
This process of data reconstruction for a failed node is called node repair process. During a node repair process the node which is added to the system to replace the failed node downloads data from a set of appropriate and accessible nodes.
There are two important goals that guide the design of codes for DSS:
reducing the repair bandwidth, i.e. the amount of data downloaded from the nodes during the node repair process, and achieving locality, i.e.
reducing the number of nodes participating in the node repair process.
These goals underpin the design of two families of codes for DSS called regenerating codes and locally repairable codes.
In this talk, we first will present a construction of a new family of optimal locally repairable codes based on maximum rank distance (MRD) codes. Second, we will discuss hybrid codes which for a given locality parameters minimize repair bandwidth. These codes are based on a combination of locally repairable codes with regenerating codes.
Finally, we will consider DSS containing nodes with adversarial errors. The key challenge in such systems is the propagation of erroneous data from a single corrupted node to the rest of the system during a node repair process. We will present a novel coding scheme for DSS which provides resilience against adversarial errors. This coding scheme also makes use of MRD codes.