Reliable distributed messaging using non-volatile system memory
First Claim
1. A system, comprising:
- a persistent storage device;
a system memory having a lower access latency than the persistent storage device, wherein the system memory is linked to one or more processors and comprises non-volatile memory and volatile memory, wherein the system memory stores program instructions that when executed on the one or more processors;
provide an interface for a source program or a destination program to request via an operating system whether a target location is to be memory mapped in a volatile memory space mapped to the volatile memory or to a non-volatile memory space mapped to the non-volatile memory;
cause the operating system to map the target location into the requested memory space;
perform a write from the source program of a data item to the target location mapped to the non-volatile memory; and
provide, subsequent to a failure event that results in a loss of data stored in the volatile memory, access to the data item to be read from the target location by the destination program.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for reliable distributed messaging are described. A computer system includes a system memory coupled to one or more processors. The system memory comprises at least a non-volatile portion. A particular location within the non-volatile portion is designated as a target location to which a sender module participating in a communication protocol is granted write permission. A receiver module participating in the communication protocol, subsequent to a failure event that results in a loss of data stored in a volatile portion of the system memory, reads a data item written by the sender program at the target location prior to the failure event. The receiver module performs an operation based on contents of the data item.
20 Citations
20 Claims
-
1. A system, comprising:
-
a persistent storage device; a system memory having a lower access latency than the persistent storage device, wherein the system memory is linked to one or more processors and comprises non-volatile memory and volatile memory, wherein the system memory stores program instructions that when executed on the one or more processors; provide an interface for a source program or a destination program to request via an operating system whether a target location is to be memory mapped in a volatile memory space mapped to the volatile memory or to a non-volatile memory space mapped to the non-volatile memory; cause the operating system to map the target location into the requested memory space; perform a write from the source program of a data item to the target location mapped to the non-volatile memory; and provide, subsequent to a failure event that results in a loss of data stored in the volatile memory, access to the data item to be read from the target location by the destination program. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
performing, by one or more computing devices comprising one or more respective persistent storage devices and one or more respective processors linked to a respective system memory comprising one or more non-volatile memory modules and one or more volatile memory modules, the system memory having a lower access latency than the respective persistent storage device; providing an interface for a source program or a destination program to request via an operating system whether a target location is to be memory mapped in a volatile memory space mapped to the volatile memory or to a non-volatile memory space mapped to the non-volatile memory; causing the operating system to map the target location into the requested memory space; performing a write from the source program of a data item to the target location mapped to the non-volatile memory; and providing, subsequent to a failure event that results in a loss of data stored in the volatile memory, access to the data item to be read from the target location by the destination program. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
14. A non-transitory computer readable storage medium storing program instructions that execute on one or more computing devices comprising one or more processors that are linked to system memory, the system memory comprising one or more non-volatile memory modules and one or more volatile memory modules, the system memory having a lower access latency than a persistent storage device of the system, wherein the program instructions execute on the one or more computing devices to:
-
provide an interface for a source program or a destination program to request via an operating system whether a target location is to be memory mapped in a volatile memory space mapped to the volatile memory or to a non-volatile memory space mapped to the non-volatile memory; cause the operating system to map the target location into the requested memory space; perform a write from the source program of a data item to the target location mapped to the non-volatile memory; and provide, subsequent to a failure event that results in a loss of data stored in the volatile memory, access to the data item to be read from the target location by the destination program. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification