IP Library › Granted Patent US 10,540,098
Granted Patent B2
US 10,540,098 · App. 15/213,621 · Granted Jan 21, 2020

Workload-aware page management for in-memory databases in hybrid main memory systems

Inventor: Ahmad Hassan (Belfast, IE)
Assignee: SAP SE
G06F3/0611G06F3/068
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,540,098
App. No.
15/213,621
Granted
Jan 21, 2020
Kind
B2
Abstract

Implementations of the present disclosure include receiving a sorted list of pages, each page corresponding to a fixed-length contiguous block of virtual memory, and being associated with a respective state, each state indicating a number of off-chip accesses determined for a respective page, and executing an application, which queries an in-memory database provided with a hybrid memory system, and, during execution of the application: identifying at least one page in the sorted list of pages as a page that is to-be-locked during execution of the application based on a threshold, and locking the at least one page in main memory to inhibit swapping of the at least one page by an operating system.

Claims (55)

1. A computer-implemented method executed by one or more processors, the method comprising:

prior to executing an application that queries an in-memory database provided with a hybrid memory system, receiving a sorted list of pages, each page corresponding to a fixed-length contiguous block of virtual memory, and being associated with a respective state, each state indicating a number of off-chip accesses determined for a respective page, each state being determined based on a query execution plan (QEP) that is executed within the hybrid memory system in response to a query submitted by the application; and

executing the application, and, during execution of the application:

determining the QEP responsive to the query submitted by the application,

identifying at least one page in the sorted list of pages as a page that is to-be-locked based on comparing the state of the at least one page to a threshold,

locking the at least one page in main memory to inhibit swapping of the at least one page from main memory by an operating system, and

executing the QEP to access the at least one page in the main memory to provide a result.

2. The method of claim 1 , wherein the hybrid main memory system comprises at least dynamic random access memory (DRAM) and non-volatile memory (NVM).

3. The method of claim 2 , wherein the at least one page is stored in DRAM.

4. The method of claim 2 , wherein one or more pages in the sorted list of pages are unlocked during execution of the application, and are stored in NVM.

5. The method of claim 1 , wherein each state is determined as a sum of a number of off-chip writes and off-chip reads for the respective page.

6. The method of claim 1 , further comprising:

receiving source code of the application;

providing an instrumented application that includes the source code and instrumentation code, the instrumented application comprising at least one instruction for profiling a plurality of pages;

executing the instrumented application to process a set of benchmark queries to provide a statistics file, the statistics file indicating, for each page in the plurality of pages, the respective state;

storing page and state tuples in a list of pages; and

sorting the list of pages based on state values to provide the sorted list of pages.

7. The method of claim 1 , wherein sorting comprises ranking pages in the list of pages based on the state values.

8. A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

prior to executing an application that queries an in-memory database provided with a hybrid memory system, receiving a sorted list of pages, each page corresponding to a fixed-length contiguous block of virtual memory, and being associated with a respective state, each state indicating a number of off-chip accesses determined for a respective page, each state being determined based on a query execution plan (QEP) that is executed within the hybrid memory system in response to a query submitted by the application; and

executing the application, and, during execution of the application:

determining the QEP responsive to the query submitted by the application,

identifying at least one page in the sorted list of pages as a page that is to-be-locked based on comparing the state of the at least one page to a threshold,

locking the at least one page in main memory to inhibit swapping of the at least one page from main memory by an operating system, and

executing the QEP to access the at least one page in the main memory to provide a result.

9. The computer-readable storage medium of claim 8 , wherein the hybrid main memory system comprises at least dynamic random access memory (DRAM) and non-volatile memory (NVM).

10. The computer-readable storage medium of claim 9 , wherein the at least one page is stored in DRAM.

11. The computer-readable storage medium of claim 9 , wherein one or more pages in the sorted list of pages are unlocked during execution of the application, and are stored in NVM.

12. The computer-readable storage medium of claim 8 , wherein each state is determined as a sum of a number of off-chip writes and off-chip reads for the respective page.

13. The computer-readable storage medium of claim 8 , wherein operations further comprise:

receiving source code of the application;

providing an instrumented application that includes the source code and instrumentation code, the instrumented application comprising at least one instruction for profiling a plurality of pages;

executing the instrumented application to process a set of benchmark queries to provide a statistics file, the statistics file indicating, for each page in the plurality of pages, the respective state;

storing page and state tuples in a list of pages; and

sorting the list of pages based on state values to provide the sorted list of pages.

14. The computer-readable storage medium of claim 8 , wherein sorting comprises ranking pages in the list of pages based on the state values.

15. A system, comprising:

a computing device; and

a computer-readable storage device coupled to the computing device and having instructions stored thereon which, when executed by the computing device, cause the computing device to perform operations comprising:

prior to executing an application that queries an in-memory database provided with a hybrid memory system, receiving a sorted list of pages, each page corresponding to a fixed-length contiguous block of virtual memory, and being associated with a respective state, each state indicating a number of off-chip accesses determined for a respective page, each state being determined based on a query execution plan (QEP) that is executed within the hybrid memory system in response to a query submitted by the application; and

executing the application, and, during execution of the application:

determining the QEP responsive to the query submitted by the application,

identifying at least one page in the sorted list of pages as a page that is to-be-locked based on comparing the state of the at least one page to a threshold,

locking the at least one page in main memory to inhibit swapping of the at least one page from main memory by an operating system, and

executing the QEP to access the at least one page in the main memory to provide a result.

16. The system of claim 15 , wherein the hybrid main memory system comprises at least dynamic random access memory (DRAM) and non-volatile memory (NVM).

17. The system of claim 16 , wherein the at least one page is stored in DRAM.

18. The system of claim 16 , wherein one or more pages in the sorted list of pages are unlocked during execution of the application, and are stored in NVM.

19. The system of claim 15 , wherein each state is determined as a sum of a number of off-chip writes and off-chip reads for the respective page.

20. The system of claim 15 , wherein operations further comprise:

receiving source code of the application;

providing an instrumented application that includes the source code and instrumentation code, the instrumented application comprising at least one instruction for profiling a plurality of pages;

executing the instrumented application to process a set of benchmark queries to provide a statistics file, the statistics file indicating, for each page in the plurality of pages, the respective state;

storing page and state tuples in a list of pages; and

sorting the list of pages based on state values to provide the sorted list of pages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2016
From: HASSAN, AHMAD
To: SAP SE
Reel/Frame 039191/0096 →
Continuity (1)
Related Publication 20180024750A1 · Jan 25, 2018