Caching system and method providing aggressive prefetch
First Claim
1. A mass storage system comprising:
- A. a cache memory;
B. a data store configured to store information in chunks each having a plurality of blocks, each block having at least one item of information, and in response to a staging request, perform a staging operation to copy information from one of said blocks into said cache;
C. a host adapter configured to perform access operations in connection with information cached in said cache memory, the host adapter being configured to, during an access operation, initially determine whether the information to be accessed is in the cache memory and, if not, generate a staging request to enable the data store to perform a staging operation to copy the information to be accessed into the cache memory and update cache miss information associated with one of said chunks containing the block; and
D. a chunk cache control configured to periodically process the cache miss information associated with a plurality of said chunks to select said chunks whose information is to be cached, and to enable information from the selected chunks to be copied into the cache memory.
7 Assignments
0 Petitions
Accused Products
Abstract
A mass storage subsystem includes one or more data stores for storing information for access by one or more devices such as host computers, and a cache memory, and connects to a slave mass storage subsystem which provides mirrored storage for the information stored in its (that is, the mass storage subsystem'"'"'s) data stores. When a host computer is to access information, the information is cached in the cache memory by the data stores, and the host computer will retrieve the information from the cache memory. In addition, the host computers can update information through the cache memory. Over a period of time, the mass storage subsystem gathers statistics relating to cache misses for respective chunks, each chunk comprising a relatively large number contiguous storage locations as maintained by the data stores, and will periodically cache information from entire chunks. Generally, if there is a relatively large number of cache misses for a chunk over a period of time, the chunk is being randomly accessed by the host computers, and, by caching the entire chunk, the likelihood of having a cache miss for that chunk will be eliminated. In addition, caching chunks in the slave mass storage subsystem'"'"'s cache memory will increase the utilization of the cache memory of the slave mass storage subsystem.
71 Citations
18 Claims
-
1. A mass storage system comprising:
-
A. a cache memory; B. a data store configured to store information in chunks each having a plurality of blocks, each block having at least one item of information, and in response to a staging request, perform a staging operation to copy information from one of said blocks into said cache; C. a host adapter configured to perform access operations in connection with information cached in said cache memory, the host adapter being configured to, during an access operation, initially determine whether the information to be accessed is in the cache memory and, if not, generate a staging request to enable the data store to perform a staging operation to copy the information to be accessed into the cache memory and update cache miss information associated with one of said chunks containing the block; and D. a chunk cache control configured to periodically process the cache miss information associated with a plurality of said chunks to select said chunks whose information is to be cached, and to enable information from the selected chunks to be copied into the cache memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of operating a mass storage system of the type comprising
i. a cache memory; -
ii. a data store configured to store information in chunks each having a plurality of blocks, each block having at least one item of information, the data store being further configured to, in response to a staging request, perform a staging operation to copy information from one of said blocks into said cache; iii. a host adapter configured to perform access operations in connection with information cached in said cache memory, the host adapter being configured to, during an access operation, initially determine whether the information to be accessed is in the cache memory and, if not, generate a staging request to enable the data store to perform a staging operation to copy the information to be accessed into the cache memory and update cache miss information associated with the one of said chunks containing the block; the method comprising the steps of; A. updating cache miss information associated with the one of said chunks containing the block when the host adapter determines during an access operation that the information to be accessed is not in the cache memory; and B. periodically processing the cache miss information associated with a plurality of said chunks to select ones of said chunks whose information is to be cached, and C. copying information from the selected chunks into the cache memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification