XORing Elephants: Novel Erasure Codes for Big Data
arXiv:1301.3791
Abstract
Distributed storage systems for large clusters typically use replication to provide reliability. Recently, erasure codes have been used to reduce the large storage overhead of three-replicated systems. Reed-Solomon codes are the standard design choice and their high repair cost is often considered an unavoidable price to pay for high storage efficiency and high reliability. This paper shows how to overcome this limitation. We present a novel family of erasure codes that are efficiently repairable and offer higher reliability compared to Reed-Solomon codes. We show analytically that our codes are optimal on a recently identified tradeoff between locality and minimum distance. We implement our new codes in Hadoop HDFS and compare to a currently deployed HDFS module that uses Reed-Solomon codes. Our modified HDFS implementation shows a reduction of approximately 2x on the repair disk I/O and repair network traffic. The disadvantage of the new coding scheme is that it requires 14% more storage compared to Reed-Solomon codes, an overhead shown to be information theoretically optimal to obtain locality. Because the new codes repair failures faster, this provides higher reliability, which is orders of magnitude higher compared to replication.
Technical report, paper to appear in Proceedings of VLDB, 2013
References in corpus (5)
- Interference Alignment in Regenerating Codes for Distributed Storage: Necessity and Code Constructions
- Distributed Data Storage with Minimum Storage Regenerating Codes - Exact and Functional Repair are Asymptotically Equally Efficient
- On the Existence of Optimal Exact-Repair MDS Codes for Distributed Storage
- MDS Array Codes with Optimal Rebuilding
- A Survey on Network Codes for Distributed Storage
Cited by in corpus (35)
- Speeding Up Distributed Machine Learning Using Codes
- Codes with Local Regeneration
- Optimal Locally Repairable Codes and Connections to Matroid Theory
- Codes with Locality for Two Erasures
- Distributed Data Storage Systems with Opportunistic Repair
- Locally Repairable Convolutional Codes with Sliding Window Repair
- Taming Tail Latency for Erasure-coded, Distributed Storage Systems
- Achieving Arbitrary Locality and Availability in Binary Codes
- Optimal Repair Layering for Erasure-Coded Data Centers: From Theory to Practice
- Explicit Construction of Minimum Bandwidth Rack-Aware Regenerating Codes
- Weight Enumerators and Higher Support Weights of Maximally Recoverable Codes
- A Repair Framework for Scalar MDS Codes
- Multilevel Diversity Coding Systems: Rate Regions, Codes, Computation, & Forbidden Minors
- Tail Index for a Distributed Storage System with Pareto File Size Distribution
- RADON: Repairable Atomic Data Object in Networks
- STAIR Codes: A General Family of Erasure Codes for Tolerating Device and Sector Failures
- Rack-Aware Regenerating Codes for Data Centers
- Optimized Video Streaming over Cloud: A Stall-Quality Trade-off
- Capacity bounds for distributed storage
- CORE: Augmenting Regenerating-Coding-Based Recovery for Single and Concurrent Failures in Distributed Storage Systems
- On Locally Recoverable (LRC) Codes
- Cauchy MDS Array Codes With Efficient Decoding Method
- Sprout: A functional caching approach to minimize service latency in erasure-coded storage
- Erasure Coding for Small Objects in In-Memory KV Storage
- t-Private Information Retrieval Schemes Using Transitive Codes
- A Tight Rate Bound and Matching Construction for Locally Recoverable Codes with Sequential Recovery From Any Number of Multiple Erasures
- Live Recovery of Bit Corruptions in Datacenter Storage Systems
- Cooperative Repair of Multiple Node Failures in Distributed Storage Systems
- Generalized and Extended Product Codes
- Repairable Fountain Codes
- Optimal Locally Repairable Codes with Improved Update Complexity
- Optimal cyclic locally repairable codes with unbounded length
- On the Average Locality of Locally Repairable Codes
- Data Secrecy in Distributed Storage Systems under Exact Repair
- Error-Correcting Regenerating and Locally Repairable Codes via Rank-Metric Codes