Because the main design goal of D-GRAID is to ensure higher availability, fast
recovery from failure is also critical. The most straightforward
optimization available with D-GRAID is to recover only ``live'' file system
data. Assume we are restoring data from a live mirror onto a hot spare; in the
straightforward approach, D-GRAID simply scans the source disk for live
blocks, examining appropriate file system structures to determine which blocks
to restore. This process is readily generalized to more complex redundancy
encodings. D-GRAID can potentially prioritize recovery in a number of ways,
e.g., by restoring certain ``important'' files first, where importance could be
domain specific (e.g., files in /etc) or indicated by users in a manner
similar to the hoarding database in Coda [27].