IP Library › Granted Patent US 10,698,732
Granted Patent B2
US 10,698,732 · App. 15/213,654 · Granted Jun 30, 2020

Page ranking in operating system virtual pages in hybrid memory systems

Inventor: Ahmad Hassan (Belfast, IE)
Assignee: SAP SE
G06F9/5016
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,698,732
App. No.
15/213,654
Granted
Jun 30, 2020
Kind
B2
Abstract

Implementations of the present disclosure include methods, systems, and computer-readable storage mediums for determining that an object implicated in an executing application is to be allocated to memory in an in-memory system, determining a type of the object, and allocating the object to one of a first size of virtual memory page and a second size of virtual memory page of an operating system based on the type of the object.

Claims (48)

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

determining, by the one or more processors, that an object implicated in an executing application is to be allocated to memory in an in-memory system;

determining, by the one or more processors, an average memory access time (AMAT) of the object based on a relationship defined as:

AMAT τ ( o )=μ r ( o ) L τ,r +(1−μ r ( o )) L LLC

where μ r (o) is a number of read memory accesses made to the object (o) per load operation, L τ,r is a latency to read a cache block in memory, and L LLC is a latency to access the cache;

identifying a type of the object based on the AMAT, the type of the object comprising one of a hot object and a cold object; and

allocating, by the one or more processors, the object to one of a first size of virtual memory page and a second size of virtual memory page of an operating system based on the type of the object to separate a hot object storage from a cold object storage to reduce a demand on the cache associated with the object.

2. The method of claim 1 , wherein the type of the object comprises a hot object, and is allocated to the first size of virtual memory page, the first size of virtual memory page comprises a large virtual memory page that has a size of at least 1 MB.

3. The method of claim 2 , further comprising allocating hot objects to the large virtual memory page until the large virtual memory page is full, then allocating hot objects to another large virtual memory page.

4. The method of claim 1 , wherein the type of the object comprises a cold object, and is allocated to the second size type of virtual memory page, the second size of virtual memory page comprises a small virtual memory page that has a size smaller than 1 MB.

5. The method of claim 1 , wherein determining the type of the object comprises comparing the AMAT to a threshold.

6. The method of claim 1 , wherein the application comprises a first allocator function and a second allocator function to respectively allocate the object to one of the first size of virtual memory page and the second size of virtual memory page of the operating system based on the type of the object.

7. 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 objects;

executing the instrumented application to process a set of benchmark queries to provide a statistics file, the statistics file indicating, for each object in the plurality of object, respective memory allocations; and

for each object in the plurality of objects, determining a respective type based on the respective memory allocations.

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:

determining that an object implicated in an executing application is to be allocated to memory in an in-memory system;

determining an average memory access time (AMAT) of the object based on a relationship defined as:

AMAT τ ( o )=μ r ( o ) L τ,r +(1−μ r ( o )) L LLC

where μ r (o) is a number of read memory accesses made to the object (o) per load operation, L τ,r is a latency to read a cache block in memory, and L LLC is a latency to access the cache;

identifying a type of the object based on the AMAT, the type of the object comprising one of a hot object and a cold object; and

allocating the object to one of a first size of virtual memory page and a second size of virtual memory page of an operating system based on the type of the object to separate a hot object storage from a cold object storage to reduce a demand on the cache associated with the object.

9. The computer-readable storage medium of claim 8 , wherein the type of the object comprises a hot object, and is allocated to the first size of virtual memory page, the first size of virtual memory page comprises a large virtual memory page that has a size of at least 1 MB.

10. The computer-readable storage medium of claim 9 , wherein operations further comprise allocating hot objects to the large virtual memory page until the large virtual memory page is full, then allocating hot objects to another large virtual memory page.

11. The computer-readable storage medium of claim 8 , wherein the type of the object comprises a cold object, and is allocated to the second size type of virtual memory page, the second size of virtual memory page comprises a small virtual memory page that has a size smaller than 1 MB.

12. The computer-readable storage medium of claim 8 , wherein determining the type of the object comparing the AMAT to a threshold.

13. The computer-readable storage medium of claim 8 , wherein the application comprises a first allocator function and a second allocator function to respectively allocate the object to one of the first size of virtual memory page and the second size of virtual memory page of the operating system based on the type of the object.

14. 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 objects;

executing the instrumented application to process a set of benchmark queries to provide a statistics file, the statistics file indicating, for each object in the plurality of object, respective memory allocations; and

for each object in the plurality of objects, determining a respective type based on the respective memory allocations.

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:

determining that an object implicated in an executing application is to be allocated to memory in an in-memory system;

determining an average memory access time (AMAT) of the object based on a relationship defined as:

AMAT τ ( o )=μ r ( o ) L τ,r +(1−μ r ( o )) L LLC

where μ r (o) is a number of read memory accesses made to the object (o) per load operation, L τ,r is a latency to read a cache block in memory, and L LLC is a latency to access the cache;

identifying a type of the object based on the AMAT, the type of the object comprising one of a hot object and a cold object; and

allocating the object to one of a first size of virtual memory page and a second size of virtual memory page of an operating system based on the type of the object to separate a hot object storage from a cold object storage to reduce a demand on the cache associated with the object.

16. The system of claim 15 , wherein the type of the object comprises a hot object, and is allocated to the first size of virtual memory page, the first size of virtual memory page comprises a large virtual memory page that has a size of at least 1 MB.

17. The system of claim 16 , wherein operations further comprise allocating hot objects to the large virtual memory page until the large virtual memory page is full, then allocating hot objects to another large virtual memory page.

18. The system of claim 15 , wherein the type of the object comprises a cold object, and is allocated to the second size type of virtual memory page, the second size of virtual memory page comprises a small virtual memory page that has a size smaller than 1 MB.

19. The system of claim 15 , wherein determining the type of the object comprises comparing the AMAT to a threshold.

20. The system of claim 15 , wherein the application comprises a first allocator function and a second allocator function to respectively allocate the object to one of the first size of virtual memory page and the second size of virtual memory page of the operating system based on the type of the object.

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