# US 2018/0024923 A1 · Page ranking in operating system virtual pages in hybrid memory systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024923 A1
- Document ID: US20180024923A1
- Status: Published application
- Kind: A1
- Application number: 15/213,654
- Filed: 2016-07-19
- Published: 2018-01-25
- Earliest claimed: 2016-07-19
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Ahmad Hassan
- Web page: https://patentgrep.com/patent/US20180024923A1

## CPC

- G06F 9/5016: {the resource being the memory}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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, a type of the 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

The method of claim 1, further comprising determining the type of the object comprises calculating an average memory access time (AMAT) of the object, and comparing the AMAT to a threshold.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 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 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 8)

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.

### Claim 12 (depends on 8)

The computer-readable storage medium of claim 8, wherein operations further comprise determining the type of the object comprises calculating an average memory access time (AMAT) of the object, and comparing the AMAT to a threshold.

### Claim 13 (depends on 8)

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.

### Claim 14 (depends on 8)

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.

### Claim 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 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 15)

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.

### Claim 19 (depends on 15)

The system of claim 15, wherein operations further comprise determining the type of the object comprises calculating an average memory access time (AMAT) of the object, and comparing the AMAT to a threshold.

### Claim 20 (depends on 15)

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.
