Restoring persistent application data from non-volatile memory after a system crash or system reboot
Systems, apparatuses and methods may provide for technology that associates a unique identifier with an application, creates an entry in a metadata table, wherein the metadata table is at a fixed location in persistent system memory, populates the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree, and recovers in-use data pages after a system crash. In one example, the in-use data pages are recovered from the persistent system memory based on the metadata table and include one or more of application heap information or application stack information.
1. A computing system comprising:
a network controller;
a processor coupled to the network controller; and
a memory architecture including volatile system memory, persistent system memory, and a set of executable program instructions, which when executed by the processor, cause the processor to:
associate a unique identifier with an application,
create an entry in a metadata table, wherein the metadata table is at a fixed location in the persistent system memory,
populate the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree, and
recover in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.
2. The computing system of claim 1 , wherein to recover the in-use data pages, the instructions, when executed, cause the processor to:
read the root of the page table tree from the metadata table;
traverse the page table tree to identify the in-use data pages; and
flag the in-use data pages for future use.
3. The computing system of claim 2 , wherein the instructions, when executed, cause the processor to recognize the metadata table based on one or more of a boot argument list or a kernel source code.
4. The computing system of claim 1 , wherein the unique identifier is associated with the application in response to a request from the application.
5. The computing system of claim 1 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.
6. The computing system of claim 1 , wherein the in-use data pages are recovered in response to a request from the application, and wherein the instructions, when executed, cause the processor to:
conduct a verification of the request based on the user identifier; and
map an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.
7. A semiconductor apparatus comprising:
one or more substrates; and
logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the one or more substrates to:
associate a unique identifier with an application;
create an entry in a metadata table, wherein the metadata table is at a fixed location in a persistent system memory;
populate the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree; and
recover in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.
8. The semiconductor apparatus of claim 7 , wherein to recover the in-use data pages, the logic coupled to the one or more substrates is to:
read the root of the page table tree from the metadata table;
traverse the page table tree to identify the in-use data pages; and
flag the in-use data pages for future use.
9. The semiconductor apparatus of claim 8 , wherein the logic coupled to the one or more substrates is to recognize the metadata table based on one or more of a boot argument list or a kernel source code.
10. The semiconductor apparatus of claim 7 , wherein the unique identifier is associated with the application in response to a request from the application.
11. The semiconductor apparatus of claim 7 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.
12. The semiconductor apparatus of claim 7 , wherein the in-use data pages are recovered in response to a request from the application, and wherein the logic coupled to the one or more substrates is to:
conduct a verification of the request based on the user identifier; and
map an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.
13. The semiconductor apparatus of claim 7 , wherein the logic coupled to the one or more substrates includes transistor channel regions that are positioned within the one or more substrates.
14. At least one non-transitory computer readable storage medium comprising a set of executable program instructions, which when executed by a computing system, cause the computing system to:
associate a unique identifier with an application;
create an entry in a metadata table, wherein the metadata table is at a fixed location in a persistent system memory;
populate the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree; and
recover in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.
15. The at least one non-transitory computer readable storage medium of claim 14 , wherein to recover the in-use data pages, the instructions, when executed, cause the computing system to:
read the root of the page table tree from the metadata table;
traverse the page table tree to identify the in-use data pages; and
flag the in-use data pages for future use.
16. The at least one non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed, cause the computing system to recognize the metadata table based on one or more of a boot argument list or a kernel source code.
17. The at least one non-transitory computer readable storage medium of claim 14 , wherein the unique identifier is associated with the application in response to a request from the application.
18. The at least one non-transitory computer readable storage medium of claim 14 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.
19. The at least one non-transitory computer readable storage medium of claim 14 , wherein the in-use data pages are recovered in response to a request from the application, and wherein the instructions, when executed, cause the computing system to:
conduct a verification of the request based on the user identifier; and
map an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.
20. A method comprising:
associating a unique identifier with an application;
creating an entry in a metadata table, wherein the metadata table is at a fixed location in a persistent system memory;
populating the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree; and
recovering in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.
21. The method of claim 20 , wherein recovering the in-use data pages includes:
reading the root of the page table tree from the metadata table;
traversing the page table tree to identify the in-use data pages; and
flagging the in-use data pages for future use.
22. The method of claim 21 , further including recognizing the metadata table based on one or more of a boot argument list or a kernel source code.
23. The method of claim 20 , wherein the unique identifier is associated with the application in response to a request from the application.
24. The method of claim 20 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.
25. The method of claim 20 , wherein the in-use data pages are recovered in response to a request from the application, the method further including:
conducting a verification of the request based on the user identifier; and
mapping an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.