IP Library › Granted Patent US 11,288,194
Granted Patent B2
US 11,288,194 · App. 16/217,257 · Granted Mar 29, 2022

Global virtual address space consistency model

Inventors: Charles R. Johns (Austin, TX); James A. Kahle (Austin, TX); Martin Ohmacht (Yorktown Heights, NY); Changhoan Kim (Westchester, NY); Jose R. Brunheroto (Mohegan Lake, NY); Constantinos Evangelinos (Cambridge, MA); Abdullah Kayi (Westchester, NY); Alessandro Morari (New York, NY); James C. Sexton (Yorktown Heights, NY); Patrick D. Siegl (White Plains, NY)
Assignee: International Business Machines Corporation
G06F12/0815G06F2212/1008G06F2212/1048G06F2212/657
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,288,194
App. No.
16/217,257
Granted
Mar 29, 2022
Kind
B2
Abstract

An approach is disclosed that maintains a consistent view of a virtual address by a local node which writes a first value to the virtual address and, after writing the first value, establishes a snapshot consistency state of the virtual address. The virtual address is shared amongst any number of processes and the processes includes a writing process and other processes that read from the virtual address. After writing the first value, the writing process writes a second value to the virtual address. Even after writing the second value, the first value is still visible to the other processes.

Claims (69)

1. A method that maintains a consistent view of a plurality of virtual addresses by a local node that is an information handling system that includes a processor and a memory accessible by the processor, the method comprising:

while maintaining the consistent view, responding to all writes of the information handling system by:

writing a first value to a selected virtual address in the plurality of virtual addresses;

after writing the first value, establishing a snapshot consistency state of the plurality of virtual addresses, wherein the plurality of virtual addresses is shared amongst a plurality of processes, wherein the plurality of processes includes a writing process and one or more other processes; and

after writing the first value, writing, by the writing process, a second value to the selected virtual address, wherein, subsequent to the writing of the second value, the first value is visible to the one or more other processes.

2. The method of claim 1 wherein the writing process runs on the local node, and wherein the one or more other processes run on one or more of a plurality of nodes, wherein the local node and a remote node are included in the plurality of nodes that access the selected virtual address.

3. The method of claim 2 wherein the snapshot consistency state is established after the writing of the first value and before the writing of the second value.

4. The method of claim 3 further comprising:

preventing the one or more other processes from reading the second value.

5. The method of claim 4 further comprising:

exiting the snapshot consistency state; and

after the exiting, allowing the other nodes to read the second value from the selected virtual address.

6. The method of claim 2 wherein a second writing node, selected from the plurality of nodes, writes the first value to the virtual address.

7. The method of claim 2 wherein, subsequent to the writing of the second value, the second value is visible to the writing node.

8. The method of claim 2 further comprising:

writing a plurality of values to the selected virtual address, wherein the plurality of values include the second value; and

consolidating the plurality of values using a resolution function.

9. The method of claim 8 wherein the resolution function is a user defined function and resolves updates to a memory location made by at least two processes.

10. The method of claim 2 wherein the virtual address is a global data object.

11. An information handling system (a local node) that maintains a consistent view of a plurality of virtual addresses comprising:

one or more processors;

a memory coupled to at least one of the processors;

a network interface that connects the local node to one or more remote nodes; and

a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions comprising:

while maintaining the consistent view, responding to all writes of the information handling system by:

writing a first value to a selected virtual address in the plurality of virtual addresses;

after writing the first value, establishing a snapshot consistency state of the plurality of virtual addresses, wherein the plurality of virtual addresses is shared amongst a plurality of processes, wherein the plurality of processes includes a writing process and one or more other processes; and

after writing the first value, writing, by the writing process, a second value to the selected virtual address, wherein, subsequent to the writing of the second value, the first value is visible to the one or more other processes.

12. The information handling system of claim 11 wherein the writing process runs on the local node, and wherein the one or more other processes run on one or more of a plurality of nodes, wherein the local node and a remote node are included in the plurality of nodes that access the selected virtual address.

13. The information handling system of claim 12 wherein the snapshot consistency state is established after the writing of the first value and before the writing of the second value.

14. The information handling system of claim 13 wherein the actions further comprise:

preventing the one or more other processes from reading the second value.

15. The information handling system of claim 14 wherein the actions further comprise:

exiting the snapshot consistency state; and

after the exiting, allowing the other nodes to read the second value from the selected virtual address.

16. The information handling system of claim 12 wherein a second writing node, selected from the plurality of nodes, writes the first value to the virtual address.

17. The information handling system of claim 12 wherein, subsequent to the writing of the second value, the second value is visible to the writing node.

18. The information handling system of claim 12 wherein the actions further comprise:

writing a plurality of values to the selected virtual address, wherein the plurality of values include the second value; and

consolidating the plurality of values using a resolution function.

19. The information handling system of claim 18 wherein the resolution function is a user defined function and resolves updates to a memory location made by at least two processes.

20. The information handling system of claim 12 wherein the virtual address is a global data object.

21. A computer program product that maintains a consistent view of a plurality of virtual addresses stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system (a local node), performs actions comprising:

while maintaining the consistent view, responding to all writes of the information handling system by:

writing a first value to a selected virtual address in a plurality of virtual addresses;

after writing the first value, establishing a snapshot consistency state of the plurality of virtual addresses, wherein the plurality of virtual addresses is shared amongst a plurality of processes, wherein the plurality of processes includes a writing process and one or more other processes; and

after writing the first value, writing, by the writing process, a second value to the selected virtual address, wherein, subsequent to the writing of the second value, the first value is visible to the one or more other processes.

22. A method that maintains a consistent view of a virtual address by a local node that is an information handling system that includes a processor and a memory accessible by the processor, the method comprising:

while maintaining the consistent view, responding to all writes of the information handling system by:

establishing a snapshot consistency state of the virtual address, wherein the virtual address is shared amongst a plurality of processes, wherein the plurality of processes includes a writing process and one or more other processes, wherein the writing process runs on the local node, and wherein the other processes run on one or more remote nodes, wherein the local node and the remote nodes are included in a plurality of nodes that share a memory area where the virtual address is stored;

writing a first value to the virtual address; and

after writing the first value, writing, by the writing process, a second value to the virtual address, wherein, subsequent to the writing of the second value, the first value is visible to the other processes and the second value is hidden from the other processes.

23. The method of claim 22 further comprising:

writing a plurality of subsequent values to the virtual address by one or more of the processes, wherein the plurality of subsequent values include the second value;

maintaining the consistent view of the virtual address by hiding the subsequent values each of the processes that did not write the respective subsequent value; and

consolidating the plurality of subsequent values using a resolution function, wherein the resolution function is a user defined function and resolves updates to the virtual address.

24. An information handling system (a local node) that maintains a consistent view of a virtual address comprising:

one or more processors;

a memory coupled to at least one of the processors;

a network interface that connects the local node to one or more remote nodes; and

a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions comprising:

while maintaining the consistent view, responding to all writes of the information handling system by:

establishing a snapshot consistency state of the virtual address, wherein the virtual address is shared amongst a plurality of processes, wherein the plurality of processes includes a writing process and one or more other processes, wherein the writing process runs on the local node, and wherein the other processes run on one or more remote nodes, wherein the local node and the remote nodes are included in a plurality of nodes that share a memory area where the virtual address is stored;

writing a first value to the virtual address; and

after writing the first value, writing, by the writing process, a second value to the virtual address, wherein, subsequent to the writing of the second value, the first value is visible to the other processes and the second value is hidden from the other processes.

25. The information handling system of claim 24 wherein the actions further comprise:

writing a plurality of subsequent values to the virtual address by one or more of the processes, wherein the plurality of subsequent values include the second value;

maintaining the consistent view of the virtual address by hiding the subsequent values each of the processes that did not write the respective subsequent value; and

consolidating the plurality of subsequent values using a resolution function, wherein the resolution function is a user defined function and resolves updates to the virtual address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2018
From: JOHNS, CHARLES R.; KAHLE, JAMES A.; OHMACHT, MARTIN; KIM, CHANGHOAN; BRUNHEROTO, JOSE R.; EVANGELINOS, CONSTANTINOS; KAYI, ABDULLAH; MORARI, ALESSANDRO; SEXTON, JAMES C.; SIEGL, PATRICK D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048295/0304 →
Continuity (1)
Related Publication 20200192799A1 · Jun 18, 2020
Cited By (3)
US 12,554,652 US 12,608,320 US 12,625,651