# US 2018/0024997 A1 · Full system simulator and memory-aware splay tree for in-memory databases 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/0024997 A1
- Document ID: US20180024997A1
- Status: Published application
- Kind: A1
- Application number: 15/214,102
- 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/US20180024997A1

## CPC

- G06F 16/214: {Database migration support}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/245: Query processing
- 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 receiving a key, the key corresponding to an object that is stored in a hybrid memory system, searching a SPLAY tree based on the key to identify a node of the SPLAY tree, determining a type of memory that the object is stored on in the hybrid memory system, the type of memory including one of a first type of memory and a second type of memory, selectively adjusting an endurance counter associated with the object based on a location of the node within the SPLAY tree, and the type of memory that the object is stored on in the hybrid memory system, and selectively migrating the object between the first memory type and the second memory type based on the EC associated with the object.

## Claims

### Claim 1

A computer-implemented method executed by one or more processors, the method comprising:
receiving, by the one or more processors, a key, the key corresponding to an object that is stored in a hybrid memory system;
searching, by the one or more processors, a SPLAY tree based on the key to identify a node of the SPLAY tree;
determining, by the one or more processors, a type of memory that the object is stored on in the hybrid memory system, the type of memory comprising one of a first type of memory and a second type of memory;
selectively adjusting, by the one or more processors, an endurance counter (EC) associated with the object based on a location of the node within the SPLAY tree, and the type of memory that the object is stored on in the hybrid memory system; and
selectively migrating, by the one or more processors, the object between the first memory type and the second memory type based on the EC associated with the object.

### Claim 2 (depends on 1)

The method of claim 1, wherein selectively migrating the object comprises:
determining that the node is a leaf node, that the object is stored in the first memory type based on a node value of the node, and that a difference between a global counter (GC) of the SPLAY tree and the EC of the object exceeds an endurance threshold (ET), and in response:
migrating the object from the first type of memory to the second type of memory in the hybrid memory system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the object is not migrated from the first type of memory to the second type of memory in the hybrid memory system, in response to determining one or more of that the node is a non-leaf node, that the object is stored in the second memory type based on a node value of the node, and that a difference between the GC of the SPLAY tree and the EC of the object does not exceed the ET.

### Claim 4 (depends on 1)

The method of claim 1, wherein the EC of the object and a GC of the SPLAY tree are incremented each time the SPLAY tree is searched for the key corresponding to the object.

### Claim 5 (depends on 1)

The method of claim 1, wherein selectively adjusting the EC associated with the object comprises:
determining that the node is a leaf node, and that the object is stored on the second memory type, and in response, resetting a value of the EC.

### Claim 6 (depends on 1)

The method of claim 1, wherein the key comprises an object identifier assigned to the object, the object identifier uniquely identifying the object among a plurality of objects.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first memory type comprises dynamic random access memory (DRAM), and the second memory type comprises non-volatile memory (NVM).

### 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:
receiving a key, the key corresponding to an object that is stored in a hybrid memory system;
searching a SPLAY tree based on the key to identify a node of the SPLAY tree;
determining a type of memory that the object is stored on in the hybrid memory system, the type of memory comprising one of a first type of memory and a second type of memory;
selectively adjusting an endurance counter (EC) associated with the object based on a location of the node within the SPLAY tree, and the type of memory that the object is stored on in the hybrid memory system; and
selectively migrating the object between the first memory type and the second memory type based on the EC associated with the object.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8, wherein selectively migrating the object comprises:
determining that the node is a leaf node, that the object is stored in the first memory type based on a node value of the node, and that a difference between a global counter (GC) of the SPLAY tree and the EC of the object exceeds an endurance threshold (ET), and in response:
migrating the object from the first type of memory to the second type of memory in the hybrid memory system.

### Claim 10 (depends on 8)

The computer-readable storage medium of claim 8, wherein the object is not migrated from the first type of memory to the second type of memory in the hybrid memory system, in response to determining one or more of that the node is a non-leaf node, that the object is stored in the second memory type based on a node value of the node, and that a difference between the GC of the SPLAY tree and the EC of the object does not exceed the ET.

### Claim 11 (depends on 8)

The computer-readable storage medium of claim 8, wherein the EC of the object and a GC of the SPLAY tree are incremented each time the SPLAY tree is searched for the key corresponding to the object.

### Claim 12 (depends on 8)

The computer-readable storage medium of claim 8, wherein selectively adjusting the EC associated with the object comprises:
determining that the node is a leaf node, and that the object is stored on the second memory type, and in response, resetting a value of the EC.

### Claim 13 (depends on 8)

The computer-readable storage medium of claim 8, wherein the key comprises an object identifier assigned to the object, the object identifier uniquely identifying the object among a plurality of objects.

### Claim 14 (depends on 8)

The computer-readable storage medium of claim 8, wherein the first memory type comprises dynamic random access memory (DRAM), and the second memory type comprises non-volatile memory (NVM).

### 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:
receiving a key, the key corresponding to an object that is stored in a hybrid memory system;
searching a SPLAY tree based on the key to identify a node of the SPLAY tree;
determining a type of memory that the object is stored on in the hybrid memory system, the type of memory comprising one of a first type of memory and a second type of memory;
selectively adjusting an endurance counter (EC) associated with the object based on a location of the node within the SPLAY tree, and the type of memory that the object is stored on in the hybrid memory system; and
selectively migrating the object between the first memory type and the second memory type based on the EC associated with the object.

### Claim 16 (depends on 15)

The system of claim 15, wherein selectively migrating the object comprises:
determining that the node is a leaf node, that the object is stored in the first memory type based on a node value of the node, and that a difference between a global counter (GC) of the SPLAY tree and the EC of the object exceeds an endurance threshold (ET), and in response:
migrating the object from the first type of memory to the second type of memory in the hybrid memory system.

### Claim 17 (depends on 15)

The system of claim 15, wherein the object is not migrated from the first type of memory to the second type of memory in the hybrid memory system, in response to determining one or more of that the node is a non-leaf node, that the object is stored in the second memory type based on a node value of the node, and that a difference between the GC of the SPLAY tree and the EC of the object does not exceed the ET.

### Claim 18 (depends on 15)

The system of claim 15, wherein the EC of the object and a GC of the SPLAY tree are incremented each time the SPLAY tree is searched for the key corresponding to the object.

### Claim 19 (depends on 15)

The system of claim 15, wherein selectively adjusting the EC associated with the object comprises:
determining that the node is a leaf node, and that the object is stored on the second memory type, and in response, resetting a value of the EC.

### Claim 20 (depends on 15)

The system of claim 15, wherein the key comprises an object identifier assigned to the object, the object identifier uniquely identifying the object among a plurality of objects.
