A New MDS Erasure Code for RAID-6

James S. Plank

September 25, 2007

Technical Report UT-CS-07-602
Department of Computer Science
University of Tennessee
Knoxville, TN 37996

PDF of the paper: CS-07-602.pdf.

This paper was submitted to USENIX FAST-2008 and accepted. Please see this page for publication and citation information. I would prefer you cite that work and not this one.

Relatedly, please see Jerasure - a library in C/C++ facilitating erasure coding for storage applications for an implementation of this work, plus other coding techniques.


The RAID-6 specification calls for a storage system with multiple storage devices to tolerate the failure of any two devices. Numerous erasure coding techniques have been developed that can implement RAID-6; however, each has limitations. In this paper, we describe a new class of RAID-6 codes called the Liberation Codes These codes encode, update and decode either optimally or close to optimally. Their modification overhead is lower than all other RAID-6 codes, and their encoding performance is often better as well. We provide an exact specification of the Liberation Codes and assess their performance in relation to other RAID-6 coding techniques. In the process, we describe an algorithm called bit matrix scheduling, which improves the performance of decoding drastically. Finally, we present a freely available library which facilitates the use of Liberation Codes in RAID-6 sytems.

Citation Information