High availability for persistent memory
AssigneeVMware, Inc.
InventorsPratap Subrahmanyam, Rajesh Venkatasubramanian, Kiran Tati, Qasim Ali
Life of this patent
Estimating the term…
Abstract
Techniques for implementing high availability for persistent memory are provided. In one embodiment, a first computer system can detect an alternating current (AC) power loss/cycle event and, in response to the event, can save data in a persistent memory of the first computer system to a memory or storage device that is remote from the first computer system and is accessible by a second computer system. The first computer system can then generate a signal for the second computer system subsequently to initiating or completing the save process, thereby allowing the second computer system to restore the saved data from the memory or storage device into its own persistent memory.
Claims24
A method for implementing high availability for persistent memory, the method comprising:
- detecting, by a first computer system, an alternating current (AC) power loss or cycle event;
- in response to the detecting, saving, by the first computer system, data in a persistent memory of the first computer system to a memory or storage device that is remote from the first computer system and is accessible by a second computer system;
- and
- generating, by the first computer system, a signal for the second computer system after initiating the saving,
- wherein the signal causes the second computer system to:
- intercept a memory access request directed to a particular portion of the saved data;
- and
- in response to the intercepting, restore the particular portion from the memory or storage device to a persistent memory of the second computer system.
A non-transitory computer readable storage medium having stored thereon program code executable by a first computer system, the program code embodying a method for implementing high availability for persistent memory, the method comprising:
- detecting an alternating current (AC) power loss or cycle event;
- in response to the detecting, saving data in a persistent memory of the first computer system to a memory or storage device that is remote from the first computer system and is accessible by a second computer system;
- and
- generating a signal for the second computer system after initiating the saving
- wherein the signal causes the second computer system to:
- intercept a memory access request directed to a particular portion of the saved data;
- and
- in response to the intercepting, restore the particular portion from the memory or storage device to a persistent memory of the second computer system.
A computer system comprising:
- a battery;
- a BIOS (Basic Input/Output System);
- an operating system (OS) or hypervisor;
- a volatile memory;
- and
- a non-transitory computer readable medium having stored thereon program code for implementing high availability for persistent memory, the program code causing the computer system to:
- detect an alternating current (AC) power loss or cycle event;
- in response to the detecting, save data in a persistent memory of the computer system to a memory or storage device that is remote from the computer system and is accessible by another computer system;
- and
- generate a signal for said another computer system after initiating the saving,
- wherein the signal causes said another computer system to:
- intercept a memory access request directed to a particular portion of the saved data;
- and
- in response to the intercepting, restore the particular portion from the memory or storage device to a persistent memory of the second computer system.
A method for implementing high availability for persistent memory, the method comprising:
- tracking, by a first computer system, one or more portions of a persistent memory that are modified during runtime of the first computer system;
- periodically flushing, by the first computer system, the one or more portions to a memory or storage device that is remote from the first computer system and is accessible by a second computer system;
- detecting, by the first computer system, an alternating current (AC) power loss or cycle event;
- in response to the detecting, saving, by the first computer system to the memory or storage device, modified data in the persistent memory that has not yet been flushed;
- and
- generating, by the first computer system, a signal for the second computer system after initiating the saving,
- wherein an OS or hypervisor of the first computer system ensures that an amount of the modified data in the persistent memory that has not yet been flushed to the memory or storage device does not exceed a threshold, and
- wherein the threshold is dynamically increased or decreased during the runtime of the first computer system in response to a change in write bandwidth of the memory or storage device.
A non-transitory computer readable storage medium having stored thereon program code executable by a first computer system, the program code embodying a method for implementing high availability for persistent memory, the method comprising:
- tracking one or more portions of a persistent memory that are modified during runtime of the first computer system;
- periodically flushing the one or more portions to a memory or storage device that is remote from the first computer system and is accessible by a second computer system;
- detecting an alternating current (AC) power loss or cycle event;
- in response to the detecting, saving, to the memory or storage device, modified data in the persistent memory that has not yet been flushed;
- and
- generating a signal for the second computer system after initiating the saving,
- wherein an OS or hypervisor of the first computer system ensures that an amount of the modified data in the persistent memory that has not yet been flushed to the memory or storage device does not exceed a threshold, and
- wherein the threshold is dynamically increased or decreased during the runtime of the first computer system in response to a change in write bandwidth of the memory or storage device.
A computer system comprising:
- a battery;
- a BIOS (Basic Input/Output System);
- an operating system (OS) or hypervisor;
- a volatile memory;
- and
- a non-transitory computer readable medium having stored thereon program code for implementing high availability for persistent memory, the program code causing the computer system to:
- track one or more portions of a persistent memory that are modified during runtime of the computer system;
- periodically flush the one or more portions to a memory or storage device that is remote from the computer system and is accessible by another computer system;
- detect an alternating current (AC) power loss or cycle event;
- in response to the detecting, save, to the memory or storage device, modified data in the persistent memory that has not yet been flushed;
- and
- generate a signal for said another computer system after initiating the saving,
- wherein the OS or hypervisor ensures that an amount of the modified data in the persistent memory that has not yet been flushed to the memory or storage device does not exceed a threshold, and
- wherein the threshold is dynamically increased or decreased during the runtime of the computer system in response to a change in write bandwidth of the memory or storage device.
Dependencies are inferred from the claim text.