PERSISTENT MEMORY UPDATING
First Claim
Patent Images
1. A system, comprising:
- a persistent memory comprising;
a set of memory blocks storing portions of files;
a file mapping that maps portions of files to memory blocks in which the portions of files are stored; and
a transaction log;
a page table to map virtual addresses used by an application to blocks of persistent memory;
a transaction initiation module to create a transaction record upon initiation of a transaction by the application;
a modification module to, upon receiving an instruction from the application to modify a read-only memory block, create a read-write copy of the read-only memory block, record an association between the read-only memory block and the read-write copy in the transaction record, and update an address in the page table associated with the read-only memory block to an address associated with the read-write copy; and
a transaction completion module to upon receiving an instruction from the application that the transaction is complete, ensure persistence of the transaction record in the transaction log, ensure persistence of changes made to the read-write copy, update a file mapping associated with the read-only memory block to point to the read-write copy, and record completion of the transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
Examples associated with persistent memory updating are described. One example includes receiving a first store instruction associated with a first page of memory in a persistent memory from an application. The first page is copied to a new page of the persistent memory. A virtual address space of the application is updated to a location of the new page in a read-write mode. The first store instruction is executed on the new page. A file mapping in the persistent memory is updated from a location of the first page to the location of the new page, and the virtual address space for the location of the new page is updated to a read-only mode.
14 Citations
15 Claims
-
1. A system, comprising:
-
a persistent memory comprising; a set of memory blocks storing portions of files; a file mapping that maps portions of files to memory blocks in which the portions of files are stored; and a transaction log; a page table to map virtual addresses used by an application to blocks of persistent memory; a transaction initiation module to create a transaction record upon initiation of a transaction by the application; a modification module to, upon receiving an instruction from the application to modify a read-only memory block, create a read-write copy of the read-only memory block, record an association between the read-only memory block and the read-write copy in the transaction record, and update an address in the page table associated with the read-only memory block to an address associated with the read-write copy; and a transaction completion module to upon receiving an instruction from the application that the transaction is complete, ensure persistence of the transaction record in the transaction log, ensure persistence of changes made to the read-write copy, update a file mapping associated with the read-only memory block to point to the read-write copy, and record completion of the transaction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method, comprising:
-
mapping a first page of a persistent memory to an application'"'"'s virtual address space in a read-only mode; receiving a first store instruction associated with the first page from the application; copying the first page to a new page of the persistent memory; updating the application'"'"'s virtual address space to a location of the new page in the persistent memory in a read-write mode; executing the first store instruction on the new page; updating a file mapping in the persistent memory from a location of the first page to the location of the new page; and updating the application'"'"'s virtual address space for the location of the new page to a read-only mode. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A non-transitory computer-readable medium storing processor executable instructions that, when executed, control the processor to:
-
record, based on a signal received from an application, initiation of a transaction; receive, from an application, a store instruction targeting a read-only page of a persistent memory; create, in the persistent memory, a read-write copy of the read-only page; record, in association with the transaction, identifiers for the read-only page and the read-write copy; receive, from the application, an indication of completion of the transaction; finalize changes made to the read-write copy; set the read-write copy to a read-only mode; update an address associated with the read-only page to an address associated with the read-write copy; and record completion of the transaction. - View Dependent Claims (13, 14, 15)
-
Specification