Erasure Coding in Windows Azure Storage
- Cheng Huang ,
- Huseyin Simitci ,
- Yikang Xu ,
- Aaron Ogus ,
- Brad Calder ,
- Parikshit Gopalan ,
- Jin Li ,
- Sergey Yekhanin
USENIX ATC 2012 |
Published by USENIX
Winner of the Best Paper Award
Windows Azure Storage (WAS) is a cloud storage system that provides customers the ability to store seemingly limitless amounts of data for any duration of time. WAS customers have access to their data from anywhere, at any time, and only pay for what they use and store. To provide durability for that data and to keep the cost of storage low, WAS uses erasure coding.
In this paper we introduce a new set of codes for erasure coding called Local Reconstruction Codes (LRC). LRC reduces the number of erasure coding fragments that need to be read when reconstructing data fragments that are offline, while still keeping the storage overhead low. The important benefits of LRC are that it reduces the bandwidth and I/Os required for repair reads over prior codes, while still allowing a significant reduction in storage overhead. We describe how LRC is used in WAS to provide low overhead durable storage with consistently low read latencies.