Coding for Distributed Storage Systems
Abstract: In distributed storage systems (DSS) data is stored over a large number of storage nodes in such a way that a user can always retrieve the stored data, even if some storage nodes fail. To achieve such resilience against node failures, DSS introduce data redundancy based on different coding techniques. When a single node fails, the system performs node repair, i.e., reconstructs the data stored in the failed node in order to maintain the required level of redundancy.
In this talk we introduce a new approach to constructing different families of optimal codes for DSS via rank-metric codes. In the first part of the talk we deal with 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 node repair, and achieving locality, i.e., reducing the number of nodes participating in a node repair process. First, we present a construction of a new family of optimal locally repairable codes, which enable repair of a failed node while using only few other nodes. Second, we introduce a new class of codes which minimize repair bandwidth for given locality parameters.
In the second part of the talk we consider the problem of making DSS resilient to adversarial attacks. In such attacks, an adversary may gain read-only access to information stored in DSS (passive eavesdropper) or may modify it (active adversary). We present a novel construction of codes for DSS which provide perfect secrecy, i.e., codes which allow to store data without revealing any information to an eavesdropper. This construction is also based on rank-metric codes.