Using global memory information to manage memory in a computer network
First Claim
1. On a computer network that includes a non-volatile storage medium for storing data and a plurality of spaced-apart computers disposed at geographically discrete locations coupled together in data communication, each computer comprising a node, a method for allocating temporary storage of the data among the plurality of nodes, each node including a volatile memory in which pages of data including local data for use by the node and global data usable by another of the plurality of nodes are storable in dynamically allocated portions, comprising the steps of:
- (a) determining a value of each page of data temporarily stored in the volatile memory of each of the plurality of nodes;
(b) each time that a memory fault occurs due to one node attempting to access a page of data that is not temporarily stored in the volatile memory of said one node, transferring the page of data to the volatile memory of said one node, said page of data being stored in one of the non-volatile memory medium and the volatile memory of another node; and
(c) transferring another page of data from the volatile memory of at least one of the nodes on the network to a different storage location as a function of the value of the other page of data, said different storage location comprising one of the non-volatile memory medium and the volatile memory of a different node.
9 Assignments
0 Petitions
Accused Products
Abstract
A system and method for managing memory in a network. In a computer network in which multiple computers (nodes) are interconnected by a network, the primary memory on one node may be used to store memory data (pages)from other nodes. The transfer of a data page over the network from the memory of a node holding it to the memory of another node requesting that data gives improved performance when compared to the transfer of the same data from disk, either local or remote, to the requesting node. Global information about the disposition of the nodes and their memories in the network is used to determine the nodes in the network that should best be used to hold data pages for other nodes at a particular time. This information is exchanged by the nodes periodically under command of a coordinating node. The system includes distributed data structures that permit one node to locate data pages stored in another node'"'"'s memory, procedures to determine when global information should be recomputed and redistributed, and procedures to avoid overburdening nodes with remote page traffic.
251 Citations
26 Claims
-
1. On a computer network that includes a non-volatile storage medium for storing data and a plurality of spaced-apart computers disposed at geographically discrete locations coupled together in data communication, each computer comprising a node, a method for allocating temporary storage of the data among the plurality of nodes, each node including a volatile memory in which pages of data including local data for use by the node and global data usable by another of the plurality of nodes are storable in dynamically allocated portions, comprising the steps of:
-
(a) determining a value of each page of data temporarily stored in the volatile memory of each of the plurality of nodes; (b) each time that a memory fault occurs due to one node attempting to access a page of data that is not temporarily stored in the volatile memory of said one node, transferring the page of data to the volatile memory of said one node, said page of data being stored in one of the non-volatile memory medium and the volatile memory of another node; and (c) transferring another page of data from the volatile memory of at least one of the nodes on the network to a different storage location as a function of the value of the other page of data, said different storage location comprising one of the non-volatile memory medium and the volatile memory of a different node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for managing memory on a network in which a plurality of spaced-apart computers disposed at geographically discrete locations are coupled in data communication with each other, at least some of said plurality of computers including a volatile memory for storing data blocks, a cluster of the plurality of computers sharing their volatile memory, said data blocks including both global data and local data, comprising the steps of:
-
(a) determining a value for any global data and any local data stored in the volatile memory of each of the plurality of computers; (b) if a computer requires desired data that are not stored in a volatile memory of said computer, attempting to access the desired data in the volatile memory of another of the plurality of computers, and if not available in the volatile memory of any other of the plurality of computers, attempting to access the desired data from a non-volatile medium on the network; (c) moving the desired data into the volatile memory of the computer requiring the desired data from one of the volatile memory of the other computer and the non-volatile medium, (d) moving at least one data block from the volatile memory of the computer requiring the desired data to the volatile memory of a different computer on the network, wherein said at least one data block is selected as a function of the value of the data block; (e) repeating steps (b) through (d) for each of the plurality of computers that requires data; and (f) implementing step (d) so that the volatile memory of each computer is allocated between storage of the global data and the local data as a function of the value of the data stored therein, the volatile memory of any computer actively requesting desired data tending to fill with local data, and the volatile memory of computers that are not actively using the data tending to fill with global data. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer network system that allocates storage of pages of data among a plurality of spaced-apart computers disposed at geographically discrete locations connected in data communication with each other, each computer comprising a node, said pages of data including local data and global data, comprising:
-
(a) a non-volatile storage medium coupled in data communication with the plurality of nodes and adapted for storing the pages of data for access by the plurality of nodes; (b) a volatile memory at each of the plurality of nodes, said volatile memory being used for storing a page of data, said page of data comprising either local data for use by the node on which the page of data is stored or global data for use by others of the plurality of nodes; (c) a processor in each of said nodes; and (d) a software program that executes on the processor in the nodes, for controlling transfer of the pages of data between the volatile memory of the plurality of nodes, and to and from the non-volatile storage medium, and causing a plurality of functions to be implemented, said functions including; (i) determining a value of each page of data stored in the volatile memory of each of the plurality of nodes; (ii) each time that a memory fault occurs due to one node attempting to access a page of data that is not stored in its volatile memory, transferring the page of data to the volatile memory of said one node from where the page of data is stored, said page of data being stored in one of the non-volatile memory medium and the volatile memory of another node; and (iii) transferring another page of data from the volatile memory of at least one of the nodes on the network to a different storage location as a function of the value of the other page of data, said different storage location comprising one of the non-volatile memory medium and the volatile memory of a different node. - View Dependent Claims (18, 19, 20, 21)
-
-
22. An article of manufacture adapted for use with on a computer network for allocating storage of pages of data among a plurality of nodes connected in data communication with each other, said computer network including a non-volatile storage device, said pages of data including local data and global data, comprising:
-
(a) a memory medium for storing machine instructions adapted to be executed by a processor in each of the plurality of nodes; and (b) a plurality of machine instructions, which when executed by the processors in the nodes, cause the processors to effect a plurality of functions, said functions including; (i) determining a value of each page of data stored in the volatile memory of the node; (ii) each time that a memory fault occurs due to one node attempting to access a page of data that is not stored in its volatile memory, transferring the page of data to the volatile memory of said one node from where the page of data is stored, said page of data being stored in one of the non-volatile storage device and the volatile memory of another node; and (iii) transferring another page of data from the volatile memory of at least one of the nodes on the network to a different storage location as a function of the value of the other page of data, said different storage location comprising one of the non-volatile storage device and the volatile memory of a different node. - View Dependent Claims (23, 24, 25, 26)
-
Specification