Patent ID: 8539191

Claim:
A storage server comprising: a processor; a network communication interface to provide the storage server with data communication with a plurality of clients over a network; a storage interface to provide the storage server with data communication with a set of mass storage devices, wherein at least one of the mass storage devices is compression enabled; and a memory containing code which, when executed by the processor, causes the storage server to execute a process to estimate space in the set of mass storage devices, the process including, receiving a request over the network from a client to store a set of data, wherein an amount of free storage space in the mass storage devices is less than a sum of an amount of storage space required to store the set of data without compression and a reserved amount of storage space, the reserved amount of storage space including an amount of storage space unavailable for storage but not yet allocated in the mass storage devices; estimating an amount of storage space to store the set of data compressed in the mass storage devices; comparing the sum of the estimated amount of storage space and the reserved amount of storage space to the amount of free storage space in the mass storage devices; and in response to said comparing resulting in a determination that the amount of free storage space is greater than or equal to the sum of the estimated amount of storage space and the reserved amount of storage space and before allocating space in the mass storage devices to store the set of data, sending a response over the network to the client, the response indicating that the request to store the set of data succeeded.