Patent ID: 6038570
Filing Date: 2000-03-14
Classification: G06F,Y10S

Abstract:
A method for storing blocks of data in a RAID array, said RAID array comprising a plurality of storage means, comprising the steps of:write allocating storage space in said RAID array for blocks of data to be stored in said RAID array by recording said write allocated storage space in a means for recording allocated storage space, said storage space comprising storage blocks in said plurality of storage means, said write allocation of said storage space in said RAID array comprising the steps of:selecting a block of data that is to be stored in said RAID array for which storage space has not yet been allocated;checking said block of data to determine if said block of data is in a different file or in a different read-ahead segment from a preceding block of data for which storage space in a first storage means of said plurality of storage means in said RAID array has been write allocated;selecting storage space in a second storage means of said plurality of storage means in said RAID array when said block of data is in said different file or is in said different read-ahead segment and selecting storage space in said first storage means when said block of data is not in said different file or in said different read-ahead segment, said storage space comprising a write allocated storage block for said block of data;assigning said write allocated storage block for said block of data to said block of data by associating an indicator of said write allocated storage block with said block of data;adding said block of data to a list of writable blocks of data for said storage means of said plurality of storage means in said RAID array;determining if all blocks of data to be stored in said RAID array have been processed, repeating said steps of selecting a block of data for which storage space has not yet been allocated and selecting storage space for said block of data when all of said blocks of data to be stored in said RAID array have not been processed;writing all unwritten blocks of data in said list of writable blocks of data to storage space allocated for said blocks of data when all said blocks of data to be stored in said RAID array have been processed.