Patent ID: 8055938

Claim:
A method for storing data at a virtual tape library server computer, the method comprising: receiving data write requests at the virtual tape library server computer, the data write requests directed to one or more volumes maintained by the virtual tape library server computer on an array of mass storage devices; and storing data for the write requests on the volumes of the array utilizing thin provisioning comprising sequentially allocating storage space on the array for write requests such that the data is capable of being stored sequentially on the array in the order that the write requests arrive at the volumes, and storing the data in the allocated storage space in the same order as the write requests arrive at the volumes by: providing a cache memory at the virtual tape library server computer at least the size of a full stripe of the array; caching the data for the write requests in the cache until a full stripe of data has been received; and in response to determining that a full stripe of data has been received, calculating a parity utilizing the contents of the cache directly, writing the contents of the cache and parity data associated with the parity to the array at one time, wherein the parity is only calculated for the full stripe of the array from the contents of the cache without reading data from the array, and flushing the contents of the cache after writing the contents of the cache to the array.