Method and apparatus for a global cache directory in a storage cluster
First Claim
1. A method of maintaining cache in a clustered environment comprising:
- (a) receiving an I/O request, for modifying data, in a primary node of a storage cluster of two or more nodes;
(b) storing die modified data in cache of the primary node;
(c) selecting a secondary node for storing the modified data in the secondary node'"'"'s cache based on a historic point of access list maintained in a cache directory, wherein;
(i) the historic point of access list identifies which node'"'"'s cache contains which data;
(ii) the historic point of access indicates that the data is not currently in cache of any node of the storage cluster; and
(iii) die secondary node selected is any node in the storage cluster;
(d) forwarding the modified data and symbolic information to one or more relevant nodes in the storage cluster, wherein the symbolic information identifies the primary and secondary nodes as containing the modified data; and
(e) updating the historic point of access list based on the symbolic information.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and article of manufacture provide the ability to maintain cache in a clustered environment. The cache is maintained in both a primary and secondary node. When data is requested, a symbolic list in a cache directory is examined to determine which node'"'"'s cache contains the requested data. If the symbolic list indicates data is not currently in cache of any node, any node may be used as the secondary node. However, if an original primary node maintains the data in cache, the original primary node is selected as the secondary node. Once a new write I/O operation is performed, the symbolic list is updated to provide. To install a new node, after applying for cluster admission, symbolic information and a modified track list is requested. The modified track list is merged with new symbolic entries and the new node then broadcasts its availability to the cluster.
80 Citations
28 Claims
-
1. A method of maintaining cache in a clustered environment comprising:
-
(a) receiving an I/O request, for modifying data, in a primary node of a storage cluster of two or more nodes; (b) storing die modified data in cache of the primary node; (c) selecting a secondary node for storing the modified data in the secondary node'"'"'s cache based on a historic point of access list maintained in a cache directory, wherein; (i) the historic point of access list identifies which node'"'"'s cache contains which data; (ii) the historic point of access indicates that the data is not currently in cache of any node of the storage cluster; and (iii) die secondary node selected is any node in the storage cluster; (d) forwarding the modified data and symbolic information to one or more relevant nodes in the storage cluster, wherein the symbolic information identifies the primary and secondary nodes as containing the modified data; and (e) updating the historic point of access list based on the symbolic information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for maintaining cache in a clustered environment comprising;
-
(a) a cache; (b) a cache directory comprising a historic point of access list for the cache, wherein the historic point of access list identifies which node'"'"'s cache contains which data; (c) a storage node organized in a storage cluster and having an interface for connecting to a host, a storage disk, and one or more additional storage nodes, wherein the storage node maintains cache and the cache directory, and wherein the storage node is configured to; (i) receive an I/O request for modifying data; (ii) store the modified data in the cache of the storage node; (iii) select a secondary node for storing data in the secondary node'"'"'s cache based on the historic point of access list; (iv) forward the modified data and symbolic information to one or more additional storage nodes in the storage cluster, wherein the symbolic information identifies a primary node and the secondary node as containing the modified data; and (v) update the historic point of access list based on the symbolic information (d) a new node configured to; (i) apply for cluster admission; (ii) request the symbolic information for new write requests; (iii) request a modified track list comprising an identifier of modified data and an associated symbolic entry; (iv) merge the modified track list with any new symbolic entries; and (v) broadcast availability to remaining nodes in the storage cluster. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An article of manufacture, including a computer readable storage medium that tangibly embodies logic to perform a method of maintaining cache in a clustered environment, the method comprising:
-
(a) receiving an I/O request, for modifying data, in a primary node of a storage cluster of two or more nodes; (b) storing the modified data in cache of the primary node; (c) selecting a secondary node for storing the modified data in the secondary node'"'"'s cache based on a historic point of access list maintained in a cache directory, wherein; (i) the historic point of access list identifies which node'"'"'s cache contains which data; (ii) the historic point of access indicates that an original primary node maintains the data in cache; and (iii) the secondary node selected is the original primary node. (d) forwarding the modified data and symbolic information to one or more relevant nodes in the storage cluster, wherein the symbolic information identifies the primary and secondary nodes as containing the modified data; and (e) updating the historic point of access list based on the symbolic information. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
Specification