One major drawback of a RAID-5 disk array system is that an update to a dat
a block may involve four disk accesses, including reading the old data, wri
ting the new data, reading the old parity and writing the new parity. Such
a high overhead is especially undesirable for workloads with high update ra
tes. One approach to alleviating this problem is to buffer parity blocks in
the disk controller cache. In this paper, we present a dynamic parity grou
ping (DPG) scheme for efficient parity buffering for a RAID-5 system. In DP
G, 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 b
locks are buffered in the disk controller cache, while the default parity b
locks remain on disks. As a result, even with a small buffer size, the majo
rity of updates require only two disk accesses, i.e., one pair of read-writ
e 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 o
f this DPG scheme, including algorithms for the dynamic detection of hot da
ta blocks. We then present performance analyses of this DPG scheme. The res
ults show that, with a stable set of hot data, the DPG scheme can potential
ly achieve N+1 times improvement in write performance in a RAID-5 of N+1 di
sks, compared with normal parity buffering.