Mirroring is often used to enhance the reliability of disk systems, but it is usually considered expensive because it duplicates storage cost and increases the cost of writes. Transaction processing applications are often disk arm bound. We show that for such applications mirroring can be used to increase the efficiency of data accesses. The extra disk arms pay for themselves by providing extra bandwidth to the data, so that the cost of the overall system compares favorably with the cost of non-redundant disks. The basic idea is to have the mirrored disks out of phase with one handling reads and the other applying a batch of writes. We also present an efficient recovery procedure that allows reconstruction of a failed disk while guaranteeing the same level of read performance as during normal operation.
Christos A. Polyzois, Anupam Bhide, Daniel M. Dias