A dynamic parity grouping for efficient parity buffering for RAID-5 disk arrays
Abstract
One major drawback of a RAID-5 disk array system is that an update to a data block may involve four disk accesses, including reading the old data, writing the new data, reading the old parity and writing the new parity. Such a high overhead is especially undesirable for workloads with high update rates. One approach to alleviating this problem is to buffer parity blocks in the disk controller cache. In this paper, we present a dynamic parity grouping (DPG) scheme for efficient parity buffering for a RAID-5 system. In DPG, special parity groups are dynamically created for data blocks with high write activity, referred to as the hot data blocks, in addition to default parity groups for the remaining cold data blocks. Only the special parity blocks are buffered in the disk controller cache, while the default parity blocks remain on disks. As a result, even with a small buffer size, the majority of updates require only two disk accesses, i.e., one pair of read-write to the data block, because most of the updates are to hot data and their parity blocks are buffered. We first describe an effective implementation of this DPG scheme, including algorithms for the dynamic detection of hot data blocks. We then present performance analyses of this DPG scheme. The results show that, with a stable set of hot data, the DPG scheme can potentially achieve W+1 times improvement in write performance in a RAID-5 of N+1 disks, compared with normal parity buffering.