10019193

Checkpointing a Journal by Virtualization of Non-Volatile Random Access Memory

PublishedJuly 10, 2018
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method comprising: labeling a first area in Random Access Memory (RAM) as an active area of a virtual non-volatile RAM (NVRAM) and a second area in RAM as a non-active area of the virtual NVRAM; creating, in permanent storage, a first journal and a second journal, wherein the first journal is an active journal associated with the first area labeled as the active area and the second journal is a non-active journal associated with the second area labeled as the non-active area; 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 based on a size of the active journal exceeding a predetermined threshold, 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 area, wherein the first area becomes the non-active area and the second area becomes the active area to store writes made to the virtual NVRAM; switching status of the active journal and the non-active journal, wherein the first journal becomes the non-active journal and the second journal becomes the active journal; and copying contents of the currently non-first area to permanent storage as the checkpoint, wherein the checkpoint is a last state of the virtual NVRAM from which to begin recovery.

2

2. The method as recited in claim 1 , wherein writing the created transactions to the active journal and to the active area includes: storing a plurality of transactions into a record; writing the record into the active journal; and updating contents of the active area based on the record written to the active journal.

3

3. The method as recited in claim 1 , wherein creating the checkpoint further includes: before copying contents from the active area, blocking new writes to the virtual NVRAM; after switching status of the active journal and the non-active journal, unblocking the new writes to the virtual NVRAM; and resetting the current non-active journal.

4

4. The method as recited in claim 1 , wherein switching status of the active journal and the non-active journal further includes: initializing the currently active journal.

5

5. The method as recited in claim 1 , further comprising keeping information on the currently active journal in a first superblock in permanent storage.

6

6. The method as recited in claim 5 , further including: after a warm recovery of a system hosting the virtual NVRAM: reading the first superblock to identify the currently active area and the currently non-active area; writing the currently active area to a non-active checkpoint on permanent storage; and switching active and non-active checkpoints on permanent storage.

7

7. The method as recited in claim 5 , further including: after a cold recovery of a system hosting the virtual NVRAM: reading the first superblock to identify the currently active area and the currently non-active area; loading a valid checkpoint into the currently active area; replaying records on the active journal to be loaded into the currently active area; and saving the currently non-active area to a non-active checkpoint on permanent storage.

8

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 the RAM as an active area of a virtual NVRAM and a second area in the RAM as a non-active area of the virtual NVRAM; and a permanent storage storing a first journal and a second journal, wherein the first journal is an active journal associated with the first area labeled as the active area and the second journal is a non-active journal associated with the second area labeled as the non-active area, 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, based on a size of remaining space on the active journal falling below a predetermined threshold, the processor creates a checkpoint in the permanent storage, wherein, to create the checkpoint, the processor is to: copy contents from the active area to the non-active area; switch status of the active area and the non-active area, wherein the first area becomes the non-active area and the second area becomes the active area to store writes made to the virtual NVRAM; switch status of the active journal and the non-active journal, wherein the first journal becomes the non-active journal and the second journal becomes the active journal; and copy contents of the currently non-first area to permanent storage as the checkpoint, wherein the checkpoint is a last state of the virtual NVRAM from which to begin recovery.

9

9. The system as recited in claim 8 , wherein when writing the created transactions to the active journal and to the active area, the processor stores a plurality of transactions into a record, writes the record into the active journal, and updates contents of the active area based on the record written to the active journal.

10

10. The system as recited in claim 8 , wherein, to create the checkpoint, the processor, before copying contents from the active area, is to block new writes to the virtual NVRAM, wherein after switching status of the active journal and the non-active journal, the processor is to unblock the new writes to the virtual NVRAM; and to reset the current non-active journal.

11

11. The system as recited in claim 8 , wherein when switching status of the active journal and the non-active journal the processor is to initialize the currently active journal.

12

12. The system as recited in claim 8 , wherein the processor is to keep information on the currently active journal in a first superblock in the permanent storage.

13

13. The system as recited in claim 12 , wherein after a warm recovery of a system hosting the virtual NVRAM, the processor is to read the first superblock to identify the currently active area and the currently non-active area, to write the currently active area to a non-active checkpoint on the permanent storage, and to switch active and non-active checkpoints on the permanent storage.

14

14. The system as recited in claim 12 , wherein after a cold recovery of a system hosting the virtual NVRAM, the processor is to read the first superblock to identify the currently active area and the currently non-active area, to load a valid checkpoint into the currently active area, to replay records on the active journal to be loaded into the currently active area, and to save the non-active area to a non-active checkpoint on the permanent storage.

15

15. A non-transitory computer-readable storage medium storing a computer program for virtualizing Non-Volatile Random Access Memory (NVRAM), wherein the program, when executed by a processor, is to cause the processor to: label a first area in Random Access Memory (RAM) as an active area of a virtual NVRAM and a second area in RAM as a non-active area of the virtual NVRAM; create, in permanent storage, a first journal and a second journal, wherein the first journal is an active journal associated with the first area labeled as the active area and the second journal is a non-active journal associated with the second area labeled as the non-active area; create a transaction for each write made to the virtual NVRAM; write the created transactions to the active journal and to the active area; and based on a size of the active journal being greater than a predetermined size or a timeout occurring, create 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 area, wherein the first area becomes the non-active area and the second area becomes the active area to store writes made to the virtual NVRAM; switching status of the active journal and the non-active journal, wherein the first journal becomes the non-active journal and the second journal becomes the active journal; and copying contents of the currently non-first area to permanent storage as the checkpoint, wherein the checkpoint is a last state of the virtual NVRAM from which to begin recovery.

16

16. The storage medium as recited in claim 15 , wherein, to write the created transactions to the active journal and to the active area, the program is further to cause the processor to: store a plurality of transactions into a record; write the record into the active journal; and update contents of the active area based on the record written to the active journal.

17

17. The storage medium as recited in claim 15 , wherein, to create the checkpoint, the program is further to cause the processor to: before copying contents from the active area, block new writes to the virtual NVRAM; after switching status of the active journal and the non-active journal, unblock the new writes to the virtual NVRAM; and reset the current non-active journal.

18

18. The storage medium as recited in claim 15 , wherein, to switch status of the active journal and the non-active journal, the program is further to cause the processor to: initialize the current active journal.

19

19. The storage medium as recited in claim 15 , wherein the instructions are further to cause the processor to keep information on the currently active journal in a first superblock in permanent storage.

20

20. The storage medium as recited in claim 19 , wherein the instructions are further to cause the processor to: after a warm recovery of a system hosting the virtual NVRAM, read the first superblock to identify the currently active area and the currently non-active area; write the currently active area to a non-active checkpoint on permanent storage; and switch active and non-active checkpoints on permanent storage.

Patent Metadata

Filing Date

Unknown

Publication Date

July 10, 2018

Inventors

Xiaoshan Zuo
Tomasz Barszczak

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “CHECKPOINTING A JOURNAL BY VIRTUALIZATION OF NON-VOLATILE RANDOM ACCESS MEMORY” (10019193). https://patentable.app/patents/10019193

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

CHECKPOINTING A JOURNAL BY VIRTUALIZATION OF NON-VOLATILE RANDOM ACCESS MEMORY — Xiaoshan Zuo | Patentable