Date of Award

Spring 2006

Document Type


Degree Name

Master of Science in Computer Science - (M.S.)


Computer Science

First Advisor

Alexander Thomasian

Second Advisor

David Nassimi

Third Advisor

Cristian Borcea


Redundant Arrays of Independent Disks (RAID) are very popular for creating large, reliable storage systems. A RAID array consists of multiple independent disks that achieve fault tolerance by parity coding. The contents on a failed disk can be reconstructed on demand by reading and exciusive-ORing the corresponding blocks on surviving disks. Upon disk failure, the array enters rebuild mode when it begins to systematically reconstruct the data of the failed disk on a spare disk, provided one is available. The fundamental element of rebuild is the Rebuild Unit (RU).

Surviving disks engaged in rebuild, process user requests at a higher priority. Since, not all RUs are available at the same time, available RUs must be stored in a buffer, called the rebuild buffer, which is a part of the disk array controller cache. Most studies assume that this buffer is infinite. However, with the advent of large sized disks, it is increasingly difficult to provide buffers large enough that do not prove to be bottlenecks. This work studies the effect of a limited rebuild buffer on the rebuild time in an effort to estimate its effect on the Mean Time to Data Loss (MTTDL) of the array.

Finally, this work studies the idea of using "track buffers" which aim to improve the rebuild time by reducing the number of times a track has to be read in order to be completely rebuilt.