Coding for Modern Distributed Storage Systems: Part 2. Locally Repairable Codes Parikshit Gopalan Windows Azure Storage, Microsoft. Rate-distance-locality tradeoffs Def: An linear code has locality if each co-ordinate can be expressed as a linear combination of other coordinates. What are the tradeoffs between ? [G.-Huang-Simitci-Yekhanin12]: In any linear code with information locality r, Algorithmic proof using linear algebra. [Papailiopoulus-Dimakis12] Replace rank with entropy.

[Prakash-Lalitha-Kamath-Kumar12] Generalized Hamming weights. [Barg-Tamo13] Graph theoretic proof. Generalizations Non-linear codes [Papailiopoulos-Dimakis, Forbes-Yekhanin]. Vector codes

[Papailoupoulos-Dimakis, Silberstein-Rawat-Koyluoglu-Vishwanath, KamathPrakash-Lalitha-Kumar] Codes over bounded alphabets [Cadambe-Mazumdar] Codes with short local MDS codes [Prakash-Lalitha-Kamath-Kumar, Silberstein-Rawat-Koyluoglu-Vishwanath] Explicit codes with all-symbol locality. [Tamo-Papailiopoulos-Dimakis13] Optimal length codes with all-symbol locality for .

Construction based on RS code, analysis via matroid theory. [Silberstein-Rawat-Koyluoglu-Vishwanath13] Optimal length codes with all-symbol locality for . Construction based on Gabidulin codes (aka linearized RS codes). [Barg-Tamo 14] Optimal length codes with all-symbol locality for .

Construction based on Reed-Solomon codes. Stronger notions of locality Codes with local Regeneration [Silberstein-Rawat-Koyluoglu-Vishwanath, Kamath-Prakash-Lalitha-Kumar] Codes with short local MDS codes [Prakash-Lalitha-Kamath-Kumar, Silberstein-Rawat-Koyluoglu-Vishwanath] Avoids the slowest node bottleneck [Shah-Lee-Ramachandran]

Sequential local recovery [Prakash-Lalitha-Kumar] Multiple disjoint local parities [Wang-Zhang, Barg-Tamo] Can serve multiple read requests in parallel. Problem: Consider an linear code where even after arbitrary failures, every (information) symbol has locality . How large does need to be? [Barg-Tamo14] might be a good starting point. Tutorial on LRCs Part 1.1: Locality 1. Locality of codeword symbols. 2. Rate-distance-locality tradeoffs: lower bounds and constructions. Part 1.2: Reliability 3. Beyond minimum distance: Maximum recoverability. 4. Constructions of Maximally Recoverable LRCs.

Beyond minimum distance? Is minimum distance the right measure of reliability? Two types of failures: Large correlated failures Power outage, upgrade. Whole data center offline. Can assume further failures are independent. Beyond minimum distance? 4 Racks

6 Machines per Rack Machines fail independently with probability . Racks fail independently with probability . Some 7 failure patterns are more likely than 5 failure patterns. Beyond minimum distance 4 Racks 6 Machines per Rack

Want to tolerate 1 rack failure + 3 additional machine failures. Beyond minimum distance Want to tolerate 1 rack + 3 more failures (9 total). Solution 1: Use a Reed-Solomon code. Corrects any 9 failures. Poor locality after a single failure. Beyond minimum distance Want to tolerate 1 rack + 3 more failures (9 total). [Plank-Blaum-Hafner13]: Sector-Disk (SD) codes.

Solution 1: Use LRCs derived from Gabidulin codes. Rack failure gives a MDS code. Stronger guarantee than minimum distance. Beyond minimum distance Want to tolerate 1 rack + 3 more failures (9 total). [Plank-Blaum-Hafner13]: Partial MDS codes. Solution 1: Use LRCs derived from Gabidulin codes. Rack failure gives a MDS code. Stronger guarantee than minimum distance. Maximally Recoverable Codes [Chen-Huang-Li07, G.-Huang-Jenkins-Yekhanin14]

Code has a topology that decides linear relations between symbols (locality). Any erasure with sufficiently many (independent) constraints is correctible. [G-Huang-Jenkins-Yekhanin14]: Let be variables. 1. Topology is given by a parity check matrix, where each entry is a linear function in the s. 2. A code is specified by choice of s. 3. The code is Maximally Recoverable if it corrects every error pattern that its topology permits. Relevant determinant is non-singular. There is some choice of s that corrects it. Example 1: MDS codes global equations: Reed-Solomon codes are Maximally Recoverable. Example 2: LRCs (PMDS codes)

Assume . Want length codes satisfying 1. Local constraints: Parity of each column is 0. 2. Global constraints: Linear constraints over all symbols. The code is MR if puncturing one entry per column gives an MDS code. The code is SD if puncturing any row gives an MDS code. Known constructions require fairly large field sizes. Example 3: Tensor Codes Assume . Want length codes satisfying 1. Column constraints: Parity of each column is 0. 2. constraints per row: Linear constraints over symbols in the row. Problem: When is an error pattern correctible? Tensor of Reed-Solomon with Parity is not necessarily MR. Maximally Recoverable Codes [Chen-Huang-Li07, G.-Huang-Jenkins-Yekhanin14] Let be variables.

1. Each entry in the parity check matrix is a linear function in the s. 2. A code is specified by choice of s. 3. The code is Maximally Recoverable if it corrects every error pattern possible given its topology. [G-Huang-Jenkins-Yekhanin14] For any topology, random codes over sufficiently large fields are MR codes. Do we need explicit constructions? Verifying a given construction is good might be hard. Large field size is undesirable. How encoding works Encoding a file using an code . Ideally field elements are byte vectors, so .

1. Break file into equal sized parts. 2. Treat each part as a long stream over . 3. Encode each row (of elements) using to create more streams. 4. Distribute them to the right nodes. a z a j d r b

c d g f t b f n v

v y g g g x b j How encoding works Encoding a file using an code .

Ideally field elements are byte vectors, so . 1. Break file into equal sized parts. 2. Treat each part as a long stream over . 3. Encode each row (of elements) using to create more streams. 4. Distribute them to the right nodes. Step 3 requires finite field arithmetic over Can use log tables up to (a few Gb). Speed up via specialized CPU instructions. Beyond that, matrix vector multiplication (dimension = bit-length).

Field size matters even at encoding time. How decoding works Decoding from erasures = solving a linear system of equations. Whether an erasure pattern is correctible can be deduced from the generator matrix. If correctible, each missing stream is a linear combination of the available streams. Random codes are as good as explicit codes for a given field size. a z

d r a j b c f t d

g b f v y n v g g

b j g x Maximally Recoverable Codes [Chen-Huang-Li07, G.-Huang-Jenkins-Yekhanin14] Thm: For any topology, random codes over sufficiently large fields are MR codes. Large field size is undesirable.

Is there a better analysis of the random construction? [Kopparty-Meka13]: Random codes are MDS only with probability for . Random codes are MR with constant probability for Could explicit constructions require smaller field size? Maximally Recoverable LRCs 1. Local constraints: Parity of each column is 0. 2. Global constraints. The code is MR if puncturing one entry per column gives an MDS code. 1. Random gives MR LRCs for SD for 2. [Silberstein-Rawat-Koylouglu-Vishwanath13] Explicit MR LRCs with [G.-Huang-Jenkins-Yekhanin] Basic construction: Gives

Product construction: Gives for suitable . Open Problems: Are there MR LRCs over fields of size ? When is a tensor code MR? Explicit constructions? Are there natural topologies for which MR codes only exist over exponentially large fields? Super-linear sized fields?

Thank you The Simons institute, David Tse, Venkat Guruswami. Azure Storage + MSR: Brad Calder, Cheng Huang, Aaron Ogus, Huseyin Simitci, Sergey Yekhanin. My former colleagues at MSR-Silicon Valley.