Concurrent reading and writing with crash recovery in persistent memory
AssigneeHewlett Packard Enterprise Development LP
InventorsMilind M. Chabbi, Yupu Zhang, Haris Volos, Kimberly Keeton
Life of this patent
Estimating the term…
Abstract
Systems and methods for concurrent reading and writing in shared, persistent byte-addressable non-volatile memory is described herein. One method includes in response to initiating a write sequence to one or more memory elements, checking an identifier memory element to determine whether a write sequence is in progress. In addition, the method includes updating an ingress counter. The method also includes adding process identification associated with a writer node to the identifier memory element. Next, a write operation is performed. After the write operation, an egress counter is incremented and the identifier memory element is reset to an expected value.
Claims20
A non-transitory computer-readable medium comprising computer-executable instructions stored thereon that, when executed by one or more processing units, causes the one or more processing units to:
- in response to initiating a write sequence to a shared memory,
- check a process identification (“PID”) field to determine whether a write sequence is in progress;
- if the write sequence is not in progress, set the PID field to a unique process identification associated with a writer and increment an ingress counter;
- perform a write operation to the shared memory;
- increment an egress counter;
- and
- reset the data in the PID field to an expected value.
A non-transitory computer-readable medium comprising computer-executable instructions stored thereon that, when executed by one or more processing units, causes the one or more processing units to:
- in response to initiating a read sequence of shared memory,
- determine an egress counter value;
- perform a read operation of the shared memory;
- determine an ingress counter value;
- if the egress counter value is not equal to the ingress counter value, re-attempt to perform the read sequence;
- and
- if the egress counter value is equal to the ingress counter value, determine that the read operation is valid.
A non-transitory computer-readable medium comprising computer-executable instructions stored thereon that, when executed by one or more processing units, causes the one or more processing units to:
- in response to initiating a recovery process,
- determine whether a PID field holds an expected value;
- compare a value of an ingress counter with a value of an egress counter and determine that a crash occurred during a write sequence if the values of the ingress counter and the egress counters are different;
- and
- determine that the crash did not occur during the write sequence if the values of the ingress counter and the egress counters are the same.
Dependencies are inferred from the claim text.