Claims
- 1. A method of maintaining cache in a clustered environment comprising:
receiving a request in a primary node of a storage cluster for accessing data; selecting a secondary node for storing data in cache based on a historic point of access list maintained in a cache directory; forwarding modified data and symbolic information to one or more relevant nodes in the storage cluster; and updating the historic point of access list based on the symbolic information.
- 2. The method of claim 1 wherein the request is to write data.
- 3. The method of claim 1 wherein:
the historic point of access indicates that the data is not currently in cache of any node of the storage cluster; and the secondary node selected is any node in the storage cluster.
- 4. The method of claim 1 wherein:
the historic point of access indicates that an original primary node maintains the data in cache; and the secondary node selected is the original primary node.
- 5. The method of claim 1 wherein:
the symbolic information includes information relating to the first node; and the historic point of access list is updated by:
listing the first node as the primary node; and listing the secondary node as the secondary node.
- 6. The method of claim 1 further comprising selecting a remote node that is an original secondary node in the historic point of access list maintained in the cache directory.
- 7. The method of claim 1 wherein:
a copy of the modified data is maintained in the first node and the secondary node; and the symbolic information is maintained in remaining nodes of the storage cluster.
- 8. The method of claim 1 further comprising acquiring a lock on associated tracks on nodes in the storage cluster wherein the locking protocol provides for multiple readers and a single writer.
- 9. The method of claim 1 further comprising:
detecting a failure of a node in the storage cluster; broadcasting a failover recovery message to all nodes in the storage cluster; and replicating the data from the primary node or the secondary node to another node in the storage cluster.
- 10. The method of claim 1 further comprising:
detecting a failure of a node in the storage cluster; broadcasting a failover recovery message to all nodes in the storage cluster; and destaging the data from the primary node or the secondary node to disk.
- 11. The method of claim 1 further comprising:
applying for cluster admission; requesting the symbolic information for new write requests; requesting a modified track list comprising an identifier of modified data and an associated symbolic entry; merging the modified track list with any new symbolic entries; and broadcasting availability to remaining nodes in the storage cluster.
- 12. 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; (a) 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 a request for accessing data; (ii) select a secondary node for storing data in cache based on the historic point of access list; (iii) forward modified data and symbolic information to one or more additional storage nodes in the storage cluster; and (iv) update the historic point of access list based on the symbolic information.
- 13. The apparatus of claim 12 wherein the request is to write data.
- 14. The apparatus of claim 12 wherein:
the historic point of access indicates that the data is not currently in cache of the nodes in the storage cluster; and the secondary node selected is any node in the storage cluster.
- 15. The apparatus of claim 12 wherein:
the historic point of access indicates that an original primary node maintains the data in cache; and the secondary node selected is the original primary node.
- 16. The apparatus of claim 12 wherein:
the symbolic information includes information relating to a first node that receives the request; and the historic point of access list is updated by:
listing the first node as the primary node; and listing the secondary node as the secondary node.
- 17. The apparatus of claim 12, wherein the storage node is further configured to select a remote node that is an original secondary node in the historic point of access list maintained in the cache directory.
- 18. The apparatus of claim 12 wherein:
a copy of the modified data is maintained in two nodes in the storage cluster; and the symbolic information is maintained in remaining nodes of the storage cluster.
- 19. The apparatus of claim 12, wherein the storage node is further configured to acquire a lock on associated tracks on relevant nodes in the storage cluster wherein the locking protocol provides for multiple readers and a single writer.
- 20. The apparatus of claim 12, wherein the storage node is further configured to:
detect a failure of a node in the storage cluster; broadcast a failover recovery message to an additional storage node in the storage cluster; and replicate the data from one node in the storage cluster to another node in the storage cluster.
- 21. The apparatus of claim 12, wherein the storage node is further configured to:
detect a failure of a node in the storage cluster; broadcast a failover recovery message to an additional node in the storage cluster; and destage the data from a node in the storage cluster to disk.
- 22. The apparatus of claim 12 further comprising a new node configured to:
apply for cluster admission; request the symbolic information for new write requests; request a modified track list comprising an identifier of modified data and an associated symbolic entry; merge the modified track list with any new symbolic entries; and broadcast availability to remaining nodes in the storage cluster.
- 23. An article of manufacture, embodying logic to perform a method of maintaining cache in a clustered environment, the method comprising:
receiving a request in a primary node of a storage cluster for accessing data; selecting a secondary node for storing data in cache based on a historic point of access list maintained in a cache directory; forwarding modified data and symbolic information to one or more relevant nodes in the storage cluster; and updating the historic point of access list based on the symbolic information.
- 24. The article of manufacture 23 wherein the request is to write data.
- 25. The article of manufacture 23 wherein:
the historic point of access indicates that the data is not currently in cache of any node of the storage cluster; and the secondary node selected is any node in the storage cluster.
- 26. The article of manufacture 23 wherein:
the historic point of access indicates that an original primary node maintains the data in cache; and the secondary node selected is the original primary node.
- 27. The article of manufacture 23 wherein:
the symbolic information includes information relating to the first node; and the historic point of access list is updated by:
listing the first node as the primary node; and listing the secondary node as the secondary node.
- 28. The article of manufacture 23, the method further comprising selecting a remote node that is an original secondary node in the historic point of access list maintained in the cache directory.
- 29. The article of manufacture 23 wherein:
a copy of the modified data is maintained in the first node and the secondary node; and the symbolic information is maintained in remaining nodes of the storage cluster.
- 30. The article of manufacture 23, the method further comprising acquiring a lock on associated tracks on nodes in the storage cluster wherein the locking protocol provides for multiple readers and a single writer.
- 31. The article of manufacture 23, the method further comprising:
detecting a failure of a node in the storage cluster; broadcasting a failover recovery message to all nodes in the storage cluster; and replicating the data from the primary node or the secondary node to another node in the storage cluster.
- 32. The article of manufacture 23, the method further comprising:
detecting a failure of a node in the storage cluster; broadcasting a failover recovery message to all nodes in the storage cluster; and destaging the data from the primary node or the secondary node to disk.
- 33. The article of manufacture 23, the method further comprising:
applying for cluster admission; requesting the symbolic information for new write requests; requesting a modified track list comprising an identifier of modified data and an associated symbolic entry; merging the modified track list with any new symbolic entries; and broadcasting availability to remaining nodes in the storage cluster.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the following co-pending and commonly assigned patent applications, which applications are incorporated by reference herein:
[0002] U.S. patent application Ser. No. 09/755,858, METHOD AND APPARATUS FOR SUPPORTING PARITY PROTECTED RAID IN A CLUSTERED ENVIRONMENT”, by Lawrence Yium-chee Chiu et. al., Attorney Docket No. ARC9-2000-0054-US1, filed on Jan. 5, 2001;
[0003] U.S. patent application Ser. No. xx/xxx,xxx, filed on the same date herewith, entitled “METHOD AND APPARATUS FOR CACHE SYNCHRONIZATION IN A CLUSTERED ENVIRONMENT”, by Lawrence Yium-chee Chiu et. al., Attorney Docket No. ARC9-2000-0056-US1; and
[0004] U.S. patent application Ser. No. xx/xxx,xxx, filed on the same date herewith, entitled “METHOD AND APPARATUS FOR IMPROVING WRITE PERFORMANCE IN A CLUSTER-BASED FILE SYSTEM”, by Ying Chen et. al., Attorney Docket No. ARC9-2000-0089-US1.