Patent ID: 7809883

Claim:
A method of caching data for use by a storage appliance comprising one or more storage devices, the method comprising: providing the storage appliance configured for: providing a file system for organizing data in a plurality of files, each file having at least one established read stream comprising a sequence of data accesses to the file; receiving a read request for requested data of a file; maintaining a counter that indicates a number of consecutive read requests satisfied by the storage appliance by retrieving data from a buffer cache without retrieving data from the one or more storage devices; determining the value of the counter; responsive to determining that the value of the counter does not exceed a threshold value, performing predictive processing for selecting readahead data from the one or more storage devices, the readahead data not comprising the requested data and comprising predicted data for loading into the buffer cache; and responsive to determining that the value of the counter exceeds the threshold value, foregoing the predictive processing, wherein the threshold value is based on a maximum number of concurrent read streams processed by the file system at the same time, a maximum readahead blocksize comprising a maximum number of readahead data blocks loaded to the buffer cache per read stream for one predictive processing execution, and an amount of overlap indicating a number of same readahead data blocks in the buffer cache.