VIRTUALIZATION OF NON-VOLATILE RANDOM ACCESS MEMORY
First Claim
1. A method for virtualizing Non-Volatile Random Access Memory (NVRAM), the method comprising:
- labeling a first area in Random Access Memory (RAM) as active area and a second area in RAM as non-active area;
creating, in permanent storage, an active journal and a non-active journal;
creating a transaction for each write made to the virtual NVRAM;
writing the created transactions to the active journal and to the active area; and
when the active journal is substantially full, creating a checkpoint, wherein creating the checkpoint includes;
copying contents from the active area to the non-active area;
switching status of the active area and the non-active areas, wherein the active area becomes the non-active area and the non-active area becomes the active area;
switching status of the active journal and the non-active journal; and
copying contents of the current non-active area to permanent storage.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and computer programs are presented for virtualizing Non-Volatile Random Access Memory (NVRAM). A first area in RAM is labeled as active area and a second area as non-active area, and an active journal and a non-active journal are created in permanent storage. A transaction is created for each write made to the virtual NVRAM, and the created transactions are written to the active journal and to the active area. When the active journal is greater than a predetermined size or a timeout occurs, a checkpoint is created by copying contents from the active area to the non-active area, switching status of the active area and the non-active areas (the active area becomes the non-active area and the non-active area becomes the active area), switching status of the active journal and the non-active journal, and copying the content of the current non-active area to permanent storage.
16 Citations
20 Claims
-
1. A method for virtualizing Non-Volatile Random Access Memory (NVRAM), the method comprising:
-
labeling a first area in Random Access Memory (RAM) as active area and a second area in RAM as non-active area; creating, in permanent storage, an active journal and a non-active journal; creating a transaction for each write made to the virtual NVRAM; writing the created transactions to the active journal and to the active area; and when the active journal is substantially full, creating a checkpoint, wherein creating the checkpoint includes; copying contents from the active area to the non-active area; switching status of the active area and the non-active areas, wherein the active area becomes the non-active area and the non-active area becomes the active area; switching status of the active journal and the non-active journal; and copying contents of the current non-active area to permanent storage. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for virtualizing Non-Volatile Random Access Memory (NVRAM), the system comprising:
-
a processor; a Random Access Memory (RAM), wherein the processor labels a first area in RAM as active area and a second area in RAM as non-active area; and permanent storage storing an active journal and a non-active journal, wherein the processor creates a transaction for each write made to the virtual NVRAM and the processor writes the created transactions to the active journal and to the active area; wherein when the active journal is substantially full, the processor creates a checkpoint in the permanent storage, wherein creating a checkpoint includes; copying contents from the active area to the non-active area; switching status of the active area and the non-active areas, wherein the active area becomes the non-active area and the non-active area becomes the active area; switching status of the active journal and the non-active journal; and copying contents of the current non-active area to permanent storage. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium storing a computer program for virtualizing Non-Volatile Random Access Memory (NVRAM), the computer-readable storage medium comprising:
-
program instructions for labeling a first area in Random Access Memory (RAM) as active area and a second area in RAM as non-active area; program instructions for creating, in permanent storage, an active journal and a non-active journal; program instructions for creating a transaction for each write made to the virtual NVRAM; program instructions for writing the created transactions to the active journal and to the active area; and program instructions for when the active journal is greater than a predetermined size or a timeout occurs, creating a checkpoint, wherein creating a checkpoint includes; copying contents from the active area to the non-active area; switching status of the active area and the non-active areas, wherein the active area becomes the non-active area and the non-active area becomes the active area; switching status of the active journal and the non-active journal; and copying contents of the current non-active area to permanent storage. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification