Persistent memory management
AssigneeSanDisk Technologies LLC
InventorsNisha Talagala, Swaminathan Sundararaman, David Flynn
Life of this patent
Estimating the term…
Abstract
Apparatuses, systems, methods, and computer program products are disclosed for persistent memory management. Persistent memory management may include replicating a persistent data structure in volatile memory buffers of at least two non-volatile storage devices. Persistent memory management may include preserving a snapshot copy of data in association with completion of a barrier operation for the data. Persistent memory management may include determining which interface of a plurality of supported interfaces is to be used to flush data from a processor complex.
Claims18
A method comprising:
- storing at least a portion of a data structure in a first volatile memory buffer within an isolation zone of a first non-volatile storage device, the first volatile memory buffer comprising a first auto-commit buffer of a first auto-commit memory that is configured to ensure that the data structure is preserved in the first non-volatile storage device in response to a trigger associated with the first auto-commit buffer;
- copying data of the at least a portion of the data structure stored in the first volatile memory buffer to a second volatile memory buffer within an isolation zone of a second non-volatile storage device such that both the first and second non-volatile storage devices independently ensure persistence of the data structure, the second volatile memory buffer comprising a second auto-commit buffer of a second auto-commit memory;
- receiving updated data for the at least a portion of the data structure stored in the first volatile memory buffer;
- and
- synchronizing, in response to the trigger associated with the first auto-commit buffer, the updated data of the at least a portion of the data structure stored in the first volatile memory buffer and the at least a portion of the data structure stored in the second volatile memory buffer such that the updated data of the data structure is accessible to both an application for the first non-volatile storage device and an application for the second non-volatile storage device.
An apparatus comprising:
- a persistent data structure module configured to store at least a portion of a data structure in a first volatile memory buffer within an isolation zone of a first non-volatile storage device, the first volatile memory buffer comprising a first auto-commit buffer of a first auto-commit memory that is configured to ensure that the data structure is preserved in the first non-volatile storage device in response to a trigger associated with the first auto-commit buffer;
- and
- a replication module configured to copy data of the at least a portion of the data structure stored in the first volatile memory buffer to a second volatile memory buffer within an isolation zone of a second non-volatile storage device such that both the first and second non-volatile storage devices independently ensure persistence of the data structure, the second volatile memory buffer comprising a second auto-commit buffer of a second auto-commit memory;
- and
- a write module configured to receive updated data for the at least a portion of the data structure stored in the first volatile memory buffer,
- wherein the replication module is configured to synchronize, in response to the trigger associated with the first auto-commit buffer, the updated data of the at least a portion of the data structure stored in the first volatile memory buffer and the at least a portion of the data structure stored in the second volatile memory buffer such that the updated data of the data structure is accessible to both an application for the first non-volatile storage device and an application for the second non-volatile storage device.
An apparatus comprising:
- means for storing at least a portion of a data structure in a first volatile memory buffer within an isolation zone of a first non-volatile storage device, the first volatile memory buffer comprising a first auto-commit buffer of a first auto-commit memory that is configured to ensure that the data structure is preserved in the first non-volatile storage device in response to a trigger associated with the first auto-commit buffer;
- means for copying data of the at least a portion of the data structure stored in the first volatile memory buffer to a second volatile memory buffer within an isolation zone of a second non-volatile storage device such that both the first and second non-volatile storage devices independently ensure persistence of the data structure, the second volatile memory buffer comprising a second auto-commit buffer of a second auto-commit memory;
- means for receiving updated data for the at least a portion of the data structure stored in the first volatile memory buffer;
- and
- means for synchronizing, in response to the trigger associated with the first auto-commit buffer, the updated data of the at least a portion of the data structure stored in the first volatile memory buffer and the at least a portion of the data structure stored in the second volatile memory buffer such that the updated data of the data structure is accessible to both an application for the first non-volatile storage device and an application for the second non-volatile storage device.
Dependencies are inferred from the claim text.