×

Reliable distributed messaging using non-volatile system memory

  • US 9,740,606 B1
  • Filed: 11/01/2013
  • Issued: 08/22/2017
  • Est. Priority Date: 11/01/2013
  • Status: Active Grant
First Claim
Patent Images

1. A system, comprising:

  • one or more processors, anda system memory for the one or more processors, wherein the system memory is linked to the one or more processors and comprises one or more non-volatile memory modules and one or more volatile memory modules;

    a persistent storage device having a higher access latency than the system memory;

    wherein the system memory comprises program instructions that when executed on the one or more processors;

    implement a shared-memory based communication protocol for communications between at least a source program and at least a destination program in accordance with which the source program is granted at least a write permission to one or more target locations within the system memory, and the destination program is granted at least a read permission to the one or more target locations;

    wherein the shared-memory based communication protocol allows the source program or the destination program to request, in a system call to an operating system, whether each of the one or more target locations are to be memory mapped in a volatile memory space or a non-volatile memory space;

    map, by the operating system in response to the system call, the one or more target locations into the memory space requested in the system call, wherein the volatile memory space is mapped to at least one of the one or more volatile memory modules, and the non-volatile memory space is mapped to at least one of the one or more non-volatile memory modules; and

    write, by the source program, a data item to a particular target location, and the particular target location is mapped to a non-volatile memory module of the one or more non-volatile memory modules;

    read, by the destination program from the particular target location, subsequent to a failure event that results in a loss of data stored in the one or more volatile modules of the system memory, the data item written by the source program at the particular target location prior to the failure event; and

    perform, by the destination program, one or more operations based at least in part on contents of the data item.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×