Method and apparatus for managing data in a distributed buffer system
First Claim
1. A method in a system that includes a plurality of nodes, each one of said plurality of nodes including a computer and a disk cache coupled to the computer, said system including multiple independent computers that are each coupled to a different disk cache, for managing cached data, the method comprising:
- responsive to a first one of said computers in a first node initiating a read operation on a block of data, placing an indication on a directory of data blocks identifying the first one of said computers as containing a copy of the data block in a disk cache that is coupled to said first one of said computers, said disk cache being included in said first one of said plurality of nodes, including in said indication a location in the first one of said computers in which a flag associated with the copy of the data block is located, said flag indicating whether said copy of said data block that is located in said disk cache is valid;
each one of said computers that is coupled to a disk cache that includes a copy of said data block including a flag that indicates whether said copy of said data block that is stored in the disk cache in each one of said computers is valid; and
responsive to initiating a write operation on the data block, sending a message to all others of said computers identified in the directory of data blocks as containing a copy of the data block to reset the flag included in said others of said computers such that the flag indicates that the data in the copy of the data block that is stored in a disk cache that is coupled to each one of said others of said computers is invalid without requiring any action by the others of said computers that received the message.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and computer implemented instructions for managing a plurality of caches of data, wherein the data processing system includes a plurality of independent computers. In response to initiating a read operation to read data on a data block, an indication is posted on a directory of data blocks identifying the computer that now holds a copy of that block and a location in the memory of that computer where a flag associated with that block is held. Then in response to initiating a write operation on that data block, messages are sent to all the computers holding that block which resets the said flag, thus informing each computer that the data in that block is no longer valid. These messages are sent using means that perform that flag reset without, in the preferred embodiment, any overhead of interruption of processing on the computers where the flags reside.
39 Citations
30 Claims
-
1. A method in a system that includes a plurality of nodes, each one of said plurality of nodes including a computer and a disk cache coupled to the computer, said system including multiple independent computers that are each coupled to a different disk cache, for managing cached data, the method comprising:
-
responsive to a first one of said computers in a first node initiating a read operation on a block of data, placing an indication on a directory of data blocks identifying the first one of said computers as containing a copy of the data block in a disk cache that is coupled to said first one of said computers, said disk cache being included in said first one of said plurality of nodes, including in said indication a location in the first one of said computers in which a flag associated with the copy of the data block is located, said flag indicating whether said copy of said data block that is located in said disk cache is valid;
each one of said computers that is coupled to a disk cache that includes a copy of said data block including a flag that indicates whether said copy of said data block that is stored in the disk cache in each one of said computers is valid; and
responsive to initiating a write operation on the data block, sending a message to all others of said computers identified in the directory of data blocks as containing a copy of the data block to reset the flag included in said others of said computers such that the flag indicates that the data in the copy of the data block that is stored in a disk cache that is coupled to each one of said others of said computers is invalid without requiring any action by the others of said computers that received the message. - View Dependent Claims (2, 3)
-
-
4. A method in a system for managing a plurality of disk caches of data, the system including a plurality of nodes of independent computers, each one of said plurality of nodes including one of said plurality of disk caches, the method comprising:
-
dedicating one of said independent computers for polling for request messages from other computers;
responsive to initiating a read operation to read data on a data block into one of said plurality of disk caches, posting an indication on a directory of data blocks identifying the read operation by identifying one of the computers that initiated the read operation; and
responsive to initiating a write operation on the data block, sending a message to all of the other computers that the data block is invalid. - View Dependent Claims (5, 6, 7, 8)
obtaining a lock on a data block by one of said computers included in one of said plurality of nodes;
determining whether a copy of the data block is stored within a local disk cache included in said one of said plurality of said nodes; and
responsive to a copy of the data block not being stored within the local disk cache, checking a validity of the data block utilizing said directory.
-
-
6. The method of claim 4 further comprising:
providing a lock table, wherein the lock table contains data identifying a lock that is held on the data block and includes a location of a validity flag in each computer system in one of said plurality of nodes that includes one of said disk caches in which a copy of said data block is currently stored, each said validity flag in a computer system indicating whether the data block that is currently stored in said one of said plurality of disk caches is valid.
-
7. The method of claim 4, wherein the data block is a page.
-
8. The method of claim 4, wherein the message initiates an invalidation of the data block.
-
9. A method in a system that includes multiple independent computer systems, the method comprising:
-
identifying an operation to access data;
determining whether a copy of the data is stored locally in a disk cache in a node that includes said disk cache coupled to one of the computers;
responsive to the copy of the data being stored in said local disk cache, checking an indicator for the data to determine whether the copy of the data is valid;
responsive to the data being valid, accessing, by the one of the computers, the copy of the data;
responsive to the accessing being a write access, obtaining identification of each one of the computers that is coupled to a disk cache in which a copy of the data is currently stored to form a set of identified computers; and
setting indicators in the set of identified computers to indicate that a copy of the data that is stored in said disk cache of each one of the computers is invalid. - View Dependent Claims (10, 11, 12, 13)
responsive to an absence of a copy of the data being stored in said local disk cache, copying the data into the local disk cache; and
setting one of said indicators to indicate that the data copied into the local disk cache is valid.
-
-
11. The method of claim 9, wherein the data is a page.
-
12. The method of claim 9, wherein the operation is read operation.
-
13. The method of claim 9, wherein the operation is a write operation.
-
14. A system comprising:
-
a plurality of nodes including multiple independent computers, each one of said plurality of nodes including a different disk cache coupled to each one of said computers;
each one of the computers including a processing unit connected to the bus system, wherein the processing unit executes a set of instructions to, place an indication on a directory of data blocks identifying one of the computers that includes said processor as containing a copy of a data block in a disk cache that is coupled to said one of said computers, said disk cache being included in one of said plurality of nodes, the indication including a location in the one of the computers in which a flag associated with the copy of the data block is located, the flag indicating whether the copy of the data block that is locked in the disk cache in the one of the plurality of nodes is valid in response to initiating a read operation on the block of data; and
send a message to all others of the computers identified in the directory of data blocks as containing a copy of the data block to reset the flag included in the others of the computers such that the flag indicates that the data in the copy of the data block that is stored in a disk cache that is coupled to the others of the computers is invalid without requiring any action by the others of the computers that received the message in response to initiating a write operation on the data block.
-
-
15. A system that includes a plurality of nodes, each one of said plurality of nodes including computer and a disk cache coupled to said computer, said system including multiple independent computers, for managing cached data, the system comprising:
-
responsive to a first one or said computers in a first node initiating a read operation on a block of data, placing means placing an indication on a directory of data blocks identifying the first one of said computers as containing a copy of the data block in a disk cache that is coupled to said first one of said computers, said disk cache being included in said first one of said plurality of nodes, including in said indication a location in the first one of said computers in which a flag associated with the copy of the data block is located, said flag indicating whether said copy of said data block that is located in said disk cache is valid;
each one of said computers that is coupled to a disk cache that includes a copy of said data block including a flag that indicates whether said copy of said data block that is stored in the disk cache in each one of said computers is valid; and
responsive to initiating a write operation on the data block, sending means for sending a message to all others of said computers identified in the directory of data blocks as containing a copy of the data block to reset the flag included in said others of said computers such that the flag indicates that the data in the copy of the data block that is stored in a disk cache that is coupled to each one of said others of said computers is invalid without requiring any action by the others of said computers that received the message. - View Dependent Claims (16, 17)
-
-
18. A system for managing a plurality of disk caches of data, the system including a plurality of nodes of independent computers, each one of said plurality of nodes including one of said computers and one of said plurality of disk caches coupled to said one of said computers, the system comprising:
-
dedicating means for dedicating one of said independent computers for polling for request messages from other computers;
responsive to initiating a read operation to read data on a data block into one of said plurality of disk caches, posting means for posting an indication on a directory of data blocks identifying the read operation by identifying one of the computers that initiated the read operation; and
responsive to initiating a write operation on the data block, sending means for sending a message to all of the other computers that the data block is invalid. - View Dependent Claims (19, 20, 21, 22)
obtaining means for obtaining a lock on a data block by one of said computers including in one of said plurality of nodes;
determining means for determining whether a copy of the data block is stored within a local disk cache included in said one of said plurality of said nodes; and
checking means, responsive to a copy of the data block not being stored within the local disk cache, for checking a validity of the data block utilizing said directory.
-
-
20. The data processing system of claim 18 further comprising:
providing a lock table, wherein the lock table contains data identifying a lock that is held on the data block and includes a location of a validity flag in each computer system in one of said plurality of nodes that includes one of said disk caches in which a copy of said data block is currently stored, each said validity flag in a computer system indicating whether the data block that is currently stored in said one of said plurality of disk caches is valid.
-
21. The data processing system of claim 18, wherein the data block is a page.
-
22. The data processing system of claim 18, wherein the message initiates an invalidation of the data block.
-
23. A system that includes multiple independent computer systems for managing data, the system comprising:
-
identifying means for identifying operation to access data;
determining means for determining whether a copy of the data is stored locally in a disk cache in a node that includes said disk cache coupled to one of the computers;
responsive to the copy of the data being stored in said local disk cache, checking means for checking an indicator for the data to determine whether the copy of the data is valid;
responsive to the data being valid, accessing means for accessing, by the one of the computers, the copy of the data;
responsive to the accessing being a write access, obtaining means for obtaining identification of each one of the computers that is coupled to a disk cache in which a copy of the data is currently stored to form a set of identified computers; and
setting means for setting indicators in the set of identified computers to indicate that a copy of the data that is stored in said disk cache of each one of the computers is invalid. - View Dependent Claims (24, 25, 26, 27)
copying means, responsive to an absence of a copy of the data being stored in a disk cache locally within the one of the computers, for copying the data into the local disk cache; and
setting means for setting one of said indicators to indicate that the data copied into the local disk cache is valid.
-
-
25. The data processing system of claim 23, wherein the data is a page.
-
26. The data processing system of claim 23, wherein the operation is read operation.
-
27. The data processing system of claim 23, wherein the operation is a write operation.
-
28. A computer program product in a computer readable medium for managing a plurality of caches data, the computer program product comprising:
-
a system that includes a plurality of nodes, each one of said plurality of nodes including a computer and a disk cache, said system including multiple independent computers;
responsive to a first one of said computers in a first node initiating a read operation on a block of data, instruction means for placing an indication on a directory of data blocks identifying the first one of said computers as containing a copy of the data block in a disk cache that is coupled to said first one of said computers, said disk cache being included in said first one of said plurality of nodes, including in said indication a location in the first one of said computers in which a flag associated the copy of the data block is located, said flag indicating whether said copy of said data block that is located in said disk cache is valid;
each one of said computers that is coupled to a disk cache that includes a copy of said data block including a flag that indicates whether said copy of said data block that is stored in the disk cache in each one of said computers is valid; and
responsive to initiating a write operation on the data block, instructions for sending a message to all others of said computers identified in the directory of data blocks as containing a copy of the data block to reset the flag included in said others of said computers such that the flag indicates that the data in the copy of the data block that is stored in a disk cache that is coupled to each one of said others of said computers is invalid without requiring any action by the others of said computers that received the message.
-
-
29. A computer program product in a computer readable medium for managing a plurality of disk caches of data, wherein the data processing system includes a plurality of processors, the computer program product comprising:
-
the system including a plurality of nodes of independent computers, each one of said plurality of nodes including one of said plurality of disk caches;
instructions for dedicating one of said independent computers for polling for request messages from other computers;
responsive to initiating read operation to read data on a data block into one of said plurality of disk caches, instructions for posting an indication on a directory of data blocks identifying the road operation by identifying one of the computers that initiated the road operation; and
responsive to initiating a write operation on the data block, instructions for sending a message to all of the other computers that the data block is invalid.
-
-
30. A computer program product in a computer readable medium for managing data, the computer program product comprising:
-
a system that includes multiple independent computer systems;
instructors for identifying an operation to access data;
instructions for determining whether a copy of the data is stored locally in a disk cache in a node that includes said disk cache coupled to one of the computers;
responsive to the copy of the data being stored in said local disk cache, instructions for checking an indicator for the data to determine whether the copy of the data is valid;
responsive to the data being valid, instructions for accessing, by the one of the computers, the copy of the data;
responsive to the accessing being a write access, instructions for obtaining identification of each one of the computers that is coupled to a disk cache in which a copy of the data is currently stored to form a set of identified computers; and
instructions for setting indicators in the set of identified computers to indicate that a copy of the data that is stored in said disk cache of each one of the computers is invalid.
-
Specification