D-Glossary
Read Ahead Motivated by the principle of “spatial locality”, many RAID controllers read blocks of data from secondary storage ahead of time, i.e., before an application actually requests those blocks. The number of data blocks that are read ahead of time is typically governed by some heuristic that observes the pattern of requests. The read-ahead technique is particularly efficient when the spatial distribution of an application’s requests follows a sequential pattern.
Read-Modify-WriteThis is a term used to characterize an efficient methodology using which parity is calculated and written into a RAID array. However, before we describe this methodology, let us briefly touch upon the most obvious and brute-force way of determining and writing parity (in response to a write operation) into a RAID array. Assume that data is being written into a strip on the RAID array that supports redundancy by the use of parity. Let us denote this as the target strip. Also assume that there are N strips per stripe including the parity strip and the target strip. Then to recalculate parity for that stripe, the following steps may be taken. First the contents of the N – 2 non-parity strips (belonging to the same stripe as the target strip) have to be read. This is followed by N – 2 XOR operations on the contents of the N – 2 strips that were just read plus the new contents of the target strip. This is followed by 1 operation to write the new data into the target strip and 1 operation to update the value of the parity strip. In all the total number of read, XOR and write operations are N – 2, N – 2, and 2 respectively adding up to a grand total of 2N – 2. Let us now discuss the “read-modify- write” method for calculating and writing parity. It is based on simple algebra, and is more efficient than the method described earlier when the value of N is large. Suppose d1, d2,… dt,… dN-1 are the data contents of the N – 1 non-parity strips with dt being the contents of the target strip. Let, p = d1 ^ d2 ^ … dt ^ …^ dN-1 Now suppose that the new data to be written into the target strip is d’t.We wish to determine the value of p’ = d1 ^ d2 ^ … d’t ^ …^ dN-1. Now, p ^ p’ = (d1 ^ d2 ^ … dt ^ …^ dN-1) ^ (d1 ^ d2 ^ … d’t ^ …^ dN-1) p ^ p’
=dt ^ d’t, since ^ operation is commutative and associative p’ = dt ^ d’t ^ p In other words, the new parity can be evaluated by calculating the XOR of the old data in the target strip, the new data for the target strip and the old parity. Clearly this requires only 2 reads – one for the old data and the old parity – followed by 2 XOR operations with 2 writes – one for writing the new data into the target strip and the new parity, giving us a grand total of 6 operations. Why is this better? When the value of N is large, i.e., the size of the parity group is large; the brute-force method utilizes far more operations!
Read Through Using this methodology, a read operation not only reads data from secondary storage into system memory but also places the data into the cache such that future need for the same data can be addressed expeditiously by directing a read operation for that data into the cache only.
Rebuild When a RAID array enters into a degraded mode, it is advisable to rebuild the array and return it to its original configuration (in terms of the number and state of working disks) to ensure against operation in degraded mode
SATA Acronym for “Serial ATA”. A hard disk drive interface standard developed to enhance connectivity and speed over the IDE, or Parallel ATA disk interface. Current generation SATAII supports speeds up to 300MB/S.