MEMORY SHARING ACROSS DISTRIBUTED NODES
First Claim
1. A first node for use in a distributed computing system, the first node comprising:
- a first main memory, wherein a first memory location in the first main memory is usable to mirror a second memory location in a second main memory on a second node of the distributed computing system;
one or more sets of program instructions; and
one or more processors;
where the one or more sets of program instructions, when executed by the one or more processors, would cause the one or more processors to perform the operations of;
loading data from the first memory location of the first main memory, wherein the data has a first data value;
determining whether the first data value is the same as a predetermined special data value, wherein the special data value is used to indicate invalid data; and
in response to a determination that the first data value is the same as the special data value;
causing valid data for the first memory location of the first main memory to be obtained from the second memory location of the second main memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus are disclosed for enabling nodes in a distributed system to share one or more memory portions. A home node makes a portion of its main memory available for sharing, and one or more sharer nodes mirrors that shared portion of the home node'"'"'s main memory in its own main memory. To maintain memory coherency, a memory coherence protocol is implemented. Under this protocol, a special data value is used to indicate that data in a mirrored memory location is not valid. This enables a sharer node to know when to obtain valid data from a home node. With this protocol, valid data is obtained from the home node and updates are propagated to the home node. Thus, no “dirty” data is transferred between sharer nodes. Consequently, the failure of one node will not cause the failure of another node or the failure of the entire system.
23 Citations
25 Claims
-
1. A first node for use in a distributed computing system, the first node comprising:
-
a first main memory, wherein a first memory location in the first main memory is usable to mirror a second memory location in a second main memory on a second node of the distributed computing system; one or more sets of program instructions; and one or more processors; where the one or more sets of program instructions, when executed by the one or more processors, would cause the one or more processors to perform the operations of; loading data from the first memory location of the first main memory, wherein the data has a first data value; determining whether the first data value is the same as a predetermined special data value, wherein the special data value is used to indicate invalid data; and in response to a determination that the first data value is the same as the special data value; causing valid data for the first memory location of the first main memory to be obtained from the second memory location of the second main memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A first node for use in a distributed computing system, the first node comprising:
-
a first main memory, wherein a first memory location in the first main memory is usable to mirror a second memory location in a second main memory on a second node of the distributed computing system; a store buffer; one or more sets of program instructions; and one or more processors; where the one or more sets of program instructions, when executed by the one or more processors, would cause the one or more processors to perform the operations of; loading data from the first memory location of the first main memory, wherein the data has a first data value; determining whether the first data value is the same as a predetermined special data value, wherein the special data value is used to indicate invalid data; in response to a determination that the first data value is not the same as the special data value, storing updated data into the first memory location of the first main memory; in response to a determination that the first data value is the same as the special data value, foregoing storing the updated data into the first memory location of the first main memory; and storing the updated data into the store buffer for eventual propagation to the second node to be stored within the second memory location of the second main memory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A second node for use in a distributed computing system comprising a first node and the second node, the second node comprising:
-
a second main memory, wherein a second memory location in the second main memory is usable to be mirrored in a first memory location in a first main memory on the first node; one or more sets of program instructions; and one or more processors; wherein the one or more sets of program instructions, when executed by the one or more processors, would cause the one or more processors to perform the operations of; storing updated data into the second memory location of the second memory; and causing data currently stored in the first memory location of the first main memory to be invalidated. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification