US2005027798A1PendingUtilityA1
Caching system and method for a network storage system
Priority: Dec 14, 2000Filed: Sep 2, 2004Published: Feb 3, 2005
Est. expiryDec 14, 2020(expired)· nominal 20-yr term from priority
G06F 2212/312G06F 12/0868G06F 2212/311G06F 12/0813G06F 2212/284G06F 2212/263
40
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A cache system and method in accordance with the invention includes a cache near the target devices and another cache at the requesting host side so that the data traffic across the computer network is reduced. A cache updating and invalidation method are described.
Claims
exact text as granted — not AI-modified1 . A cache system, comprising:
a computer network; two or more cache systems connected to the computer network wherein each cache system is connected to at least one computer host and at least one storage device; each cache system further comprising a first cache for servicing data requests for data stored on the storage device associated with the cache system, a second cache for servicing data requests from computer hosts associated with the cache system and a cache manager for controlling the operation of the first and second caches.
2 . The system of claim 1 , wherein the first cache further comprises a storage-side cache (SSC) and wherein the second cache further comprises a host-side cache (HSC).
3 . The system of claim 2 , wherein the cache manager further comprises means for performing a read operation on the SSC and means for performing a write operation on the SSC.
4 . The system of claim 3 , wherein the read performing means further comprises means for checking a cache tag table stored in the SSC to determine if a cache hit has occurred when data is read from the storage device, means for serving the data from the SSC if a cache hit occurs, means for reading the data from a storage device if a cache miss occurs.
5 . The system of claim 4 , wherein the storage device reading means further comprises means for updating the SSC with the data read from the storage device and means for updating the cache tag table associated with the SSC to reflect the data read from the storage device.
6 . The system of claim 5 , wherein the SSC updating means further comprises means for determining the available space in the SSC and means for purging least recently used data from the SSC if sufficient space is not available.
7 . The system of claim 3 , wherein the write performing means further comprises means for determining a user configurable cache update mode of operation selected from a non-critical coherent mode wherein the data is written to the storage device before the cache is updated and a critical coherent mode wherein the cache is updated and then the data is written to the storage device.
8 . The system of claim 7 , wherein the write performing means further comprises means for checking a cache tag table to determine if a cache hit occurs, means for updating the data in the cache if a cache hit occurs, means for storing the data in the cache and means for updating the cache tag table.
9 . The system of claim 8 , wherein the storing data means further comprises means for determining the available space in the cache and means for purging either the least recently used data from the cache or the data that have been expired according to the pre-set cache time limit, depending on their data types, if sufficient space is not available.
10 . The system of claim 2 , wherein the cache manager further comprises means for performing a read operation on the HSC and means for performing a write operation on the HSC.
11 . The system of claim 10 , wherein the read performing means further comprises means for checking a cache tag table stored in the HSC to determine if a cache hit has occurred when data is requested by the computer host, means for serving the data from the HSC if a cache hit occurs, means for reading the data from a storage device if a cache miss occurs.
12 . The system of claim 11 , wherein the storage device reading means further comprises means for reading the data from the SSC associated with the storage device if a SSC cache hit occurs and means for reading the data from the storage device if a SSC cache hit does not occur.
13 . The system of claim 12 , wherein the storage device reading means further comprises means for updating the HSC with the data requested by the computer host and means for updating the cache tag table associated with the HSC to reflect the data requested by the computer host.
14 . The system of claim 13 , wherein the HSC updating means further comprises means for determining the available space in the HSC and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the HSC if sufficient space is not available.
15 . The system of claim 10 , wherein the write performing means further comprises means for determining a write operation byte limit, means for invalidating the HSC in response to a HSC cache write if the number of bytes in the cache write exceeds the write operation byte limit and means for updating the HSC cache in response to a HSC cache write if the number of bytes in the cache write does not exceed the write operation byte limit.
16 . The system of claim 15 , wherein the write performing means further comprises means for determining a user configurable cache update mode of operation selected from a non-critical coherent mode wherein the data is written to the storage device before the cache is updated and a critical coherent mode wherein the cache is updated and then the data is written to the storage device.
17 . The system of claim 16 , wherein the write performing means further comprises means for checking a cache tag table to determine if a cache hit occurs, means for updating the data in the cache if a cache hit occurs, means for storing the data in the cache and means for updating the cache tag table.
18 . The system of claim 17 , wherein the storing data means further comprises means for determining the available space in the cache and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the cache if sufficient space is not available.
19 . The cache system of claim 2 , wherein the SSC and the HSC each comprise a plurality of cache memory locations and wherein the plurality of cache memory locations comprises semiconductor memory locations and persistent storage device locations.
20 . The system of claim 2 , wherein the SSC and HSC each further comprise means for storing blocks of data in the cache and means for storing files in the cache.
21 . A method for caching data being transferred between a first cache system and a second cache system connected together by a computer network, the first and second cache systems each having at least one storage device, at least one computer host, a storage device cache and a computer host cache associated with the cache system, the method comprising:
checking the computer host cache of the first cache system upon receiving a read request from the computer host associated with the first cache system for data from the storage device of the second cache system to determine if the requested data is in the computer host cache; and if the data is not in the computer host cache, checking the storage device cache of the second cache system to determine if the requested data is in the storage device cache.
22 . The method of claim 21 further comprising if the data is not in the storage device cache of the second cache system, retrieving the data from the storage device associated with the second cache system and updating the storage device cache of the second cache system and the computer host cache of the first cache system with the data from the storage device.
23 . A method for caching data being transferred between a first cache system and a second cache system connected together by a computer network, the first and second cache systems each having at least one storage device, at least one computer host, a storage device cache and a computer host cache associated with the cache system, the method comprising:
changing the computer host cache of the first cache system upon receiving a write request from the computer host associated with the first cache system to write data to the storage device of the second cache system; sending a message for all of the computer host caches to change the computer host cache with the same data as the computer host cache of the first cache system; and changing the storage device cache of the second cache system in response to the write request.
24 . The method of claim 23 , wherein the changing the cache further comprises one of updating the cache with the data to be written to the storage device and invalidating the data in the caches in response to the write request.
25 . A cache unit capable of caching data requested by a computer host and capable of caching data requested from a storage device, the cache unit comprising:
a memory for storing cached data that is requested by a computer host; and a cache manager for servicing the read and write requests from the computer host for data located on a storage device.
26 . The system of claim 25 , wherein the cache unit stores data for one or more computer hosts.
27 . The system of claim 25 , wherein the cache further comprises a host side cache (HSC) for caching data requested by one or more computer hosts and a storage side cache (SSC) for caching data stored on one or more storage devices.
28 . The system of claim 27 , wherein the cache manager further comprises means for performing a read operation on the SSC and means for performing a write operation on the SSC.
29 . The system of claim 28 , wherein the read performing means further comprises means for checking a cache tag table stored in the SSC to determine if a cache hit has occurred when data is read from the storage device, means for serving the data from the SSC if a cache hit occurs, means for reading the data from the storage device if a cache miss occurs.
30 . The system of claim 29 , wherein the storage device reading means further comprises means for updating the SSC with the data read from the storage device and means for updating the cache tag table associated with the SSC to reflect the data read from the storage device.
31 . The system of claim 30 , wherein the SSC updating means further comprises means for determining the available space in the SSC and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit depending on the data types, from the SSC if sufficient space is not available.
32 . The system of claim 28 , wherein the write performing means further comprises means for determining a user configurable cache update mode of operation selected from a non-critical coherent mode wherein the data is written to the storage device before the cache is updated and a critical coherent mode wherein the cache is updated and then the data is written to the storage device.
33 . The system of claim 32 , wherein the write performing means further comprises means for checking a cache tag table to determine if a cache hit occurs, means for updating the data in the cache if a cache hit occurs, means for storing the data in the cache and means for updating the cache tag table.
34 . The system of claim 33 , wherein the storing data means further comprises means for determining the available space in the cache and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the cache if sufficient space is not available.
35 . The system of claim 27 , wherein the cache manager further comprises means for performing a read operation on the HSC and means for performing a write operation on the HSC.
36 . The system of claim 35 , wherein the read performing means further comprises means for checking a cache tag table stored in the HSC to determine if a cache hit has occurred when data is requested by the computer host, means for serving the data from the HSC if a cache hit occurs, means for reading the data from a storage device if a cache miss occurs.
37 . The system of claim 36 , wherein the storage device reading means further comprises means for reading the data from the SSC associated with the storage device if a SSC cache hit occurs and means for reading the data from the storage device if a SSC cache hit does not occur.
38 . The system of claim 37 , wherein the storage device reading means further comprises means for updating the HSC with the data requested by the computer host and means for updating the cache tag table associated with the HSC to reflect the data requested by the computer host.
39 . The system of claim 38 , wherein the HSC updating means further comprises means for determining the available space in the HSC and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the HSC if sufficient space is not available.
40 . The system of claim 35 , wherein the write performing means further comprises means for determining a write operation byte limit, means for invalidating the HSC in response to a HSC cache write if the number of bytes in the cache write exceeds the write operation byte limit and means for updating the HSC cache in response to a HSC cache write if the number of bytes in the cache write does not exceed the write operation byte limit.
41 . The system of claim 40 , wherein the write performing means further comprises means for determining a user configurable cache update mode of operation selected from a non-critical coherent mode wherein the data is written to the storage device before the cache is updated and a critical coherent mode wherein the cache is updated and then the data is written to the storage device.
42 . The system of claim 41 , wherein the write performing means further comprises means for checking a cache tag table to determine if a cache hit occurs, means for updating the data in the cache if a cache hit occurs, means for storing the data in the cache and means for updating the cache tag table.
43 . The system of claim 42 , wherein the storing data means further comprises means for determining the available space in the cache and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the cache if sufficient space is not available.
44 . The cache system of claim 27 , wherein the SSC and the HSC each comprise a plurality of cache memory locations and wherein the plurality of cache memory locations comprises semiconductor memory locations and persistent storage device locations.
45 . The system of claim 27 , wherein the SSC and HSC each further comprise means for storing blocks of data in the cache and means for storing files in the cache.
46 . The cache unit of claim 27 , wherein the cache unit further comprises one or more line cards that connect the cache unit to other cache unit through one or more different computer networks and a cache card connected to the line cards wherein the cache card further comprises a computer host cache for computer hosts connected to the one or more line cards, a storage device cache for storage devices connected to the one or more line cards and a cache manager for managing the computer host cache and the storage device cache.
47 . A cache unit capable of caching data requested by a computer host and capable of caching data requested from a storage device, the cache unit comprising:
a memory for storing cached data that is stored in a storage device; and a cache manager for servicing the read and write requests for data located in the storage device.
48 . The system of claim 47 , wherein one or more storage devices are connected to the cache unit so that the cache unit stores cached data for the one or more storage devices.
49 . The system of claim 47 , wherein the cache further comprises a host side cache (HSC) for caching data requested by one or more computer hosts and a storage side cache (SSC) for caching data stored on one or more storage devices.
50 . The system of claim 49 , wherein the cache manager further comprises means for performing a read operation on the SSC and means for performing a write operation on the SSC.
51 . The system of claim 50 , wherein the read performing means further comprises means for checking a cache tag table stored in the SSC to determine if a cache hit has occurred when data is read from the storage device, means for serving the data from the SSC if a cache hit occurs, means for reading the data from the storage device if a cache miss occurs.
52 . The system of claim 51 , wherein the storage device reading means further comprises means for updating the SSC with the data read from the storage device and means for updating the cache tag table associated with the SSC to reflect the data read from the storage device.
53 . The system of claim 52 , wherein the SSC updating means further comprises means for determining the available space in the SSC and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit depending on the data types, from the SSC if sufficient space is not available.
54 . The system of claim 50 , wherein the write performing means further comprises means for determining a user configurable cache update mode of operation selected from a non-critical coherent mode wherein the data is written to the storage device before the cache is updated and a critical coherent mode wherein the cache is updated and then the data is written to the storage device.
55 . The system of claim 54 , wherein the write performing means further comprises means for checking a cache tag table to determine if a cache hit occurs, means for updating the data in the cache if a cache hit occurs, means for storing the data in the cache and means for updating the cache tag table.
56 . The system of claim 55 , wherein the storing data means further comprises means for determining the available space in the cache and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the cache if sufficient space is not available.
57 . The system of claim 49 , wherein the cache manager further comprises means for performing a read operation on the HSC and means for performing a write operation on the HSC.
58 . The system of claim 57 , wherein the read performing means further comprises means for checking a cache tag-table stored in the HSC to determine if a cache hit has occurred when data is requested by the computer host, means for serving the data from the HSC if a cache hit occurs, means for reading the data from a storage device if a cache miss occurs.
59 . The system of claim 58 , wherein the storage device reading means further comprises means for reading the data from the SSC associated with the storage device if a SSC cache hit occurs and means for reading the data from the storage device if a SSC cache hit does not occur.
60 . The system of claim 59 , wherein the storage device reading means further comprises means for updating the HSC with the data requested by the computer host and means for updating the cache tag table associated with the HSC to reflect the data requested by the computer host.
61 . The system of claim 60 , wherein the HSC updating means further comprises means for determining the available space in the HSC and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the HSC if sufficient space is not available.
62 . The system of claim 57 , wherein the write performing means further comprises means for determining a write operation byte limit, means for invalidating the HSC in response to a HSC cache write if the number of bytes in the cache write exceeds the write operation byte limit and means for updating the HSC cache in response to a HSC cache write if the number of bytes in the cache write does not exceed the write operation byte limit.
63 . The system of claim 62 , wherein the write performing means further comprises means for determining a user configurable cache update mode of operation selected from a non-critical coherent mode wherein the data is written to the storage device before the cache is updated and a critical coherent mode wherein the cache is updated and then the data is written to the storage device.
64 . The system of claim 63 , wherein the write performing means further comprises means for checking a cache tag table to determine if a cache hit occurs, means for updating the data in the cache if a cache hit occurs, means for storing the data in the cache and means for updating the cache tag table.
65 . The system of claim 64 , wherein the storing data means further comprises means for determining the available space in the cache and means for purging either the least recently used data or the data that have been expired according to the pre-set cache time limit, depending on the data types, from the cache if sufficient space is not available.
66 . The cache system of claim 49 , wherein the SSC and the HSC each comprise a plurality of cache memory locations and wherein the plurality of cache memory locations comprises semiconductor memory locations and persistent storage device locations.
67 . The system of claim 49 , wherein the SSC and HSC each further comprise means for storing blocks of data in the cache and means for storing files in the cache.
68 . The cache unit of claim 49 , wherein the cache unit further comprises one or more line cards that connect the cache unit to other cache unit through one or more different computer networks and a cache card connected to the line cards wherein the cache card further comprises a computer host cache for computer hosts connected to the one or more line cards, a storage device cache for storage devices connected to the one or more line cards and a cache manager for managing the computer host cache and the storage device cache.Join the waitlist — get patent alerts
Track US2005027798A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.