IP Library Granted Patent US 10,733,185
Granted Patent B2
US 10,733,185 · App. 15/915,797 · Granted Aug 4, 2020

Access pattern based optimization of memory access

Inventors: Georgios Psaropoulos (Lausanne, CH); Thomas Legler (Walldorf, DE); Norman May (Karlsruhe, DE); Anastasia Ailamaki (Morges, CH)
Assignee: SAP SE
G06F16/24542G06F16/24537G06F16/24539
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,733,185
App. No.
15/915,797
Granted
Aug 4, 2020
Kind
B2
Abstract

A method for optimizing memory access for database operations is provided. The method may include identifying an access pattern associated with a database operation. The access pattern may include data required to perform the database operation. One or more memory pages may be generated based at least on the access pattern. The one or more memory pages may include at least a portion of the data required to perform the database operation. The one or more memory pages including at least the portion of the data required to perform the database operation may be stored in a main memory. The database operation may be performed by at least loading, from the main memory and into a cache, the one or more memory pages including at least the portion of the data required to perform the database operation. Related systems and articles of manufacture, including computer program products, are also provided.

Claims (29)

1. A system, comprising:

at least one data processor; and

at least one memory storing instructions which, when executed by the at least one data processor, cause operations comprising:

identifying an access pattern associated with a database operation, the database operation comprising a binary search on an index comprising a sorted array, the access pattern comprising data required to perform the database operation, and the data required to perform the database operation comprising a first middle element of the sorted array;

generating, based at least on the access pattern, one or more memory pages including at least a portion of the data required to perform the database operation;

storing, in a main memory, the one or more memory pages including at least the portion of the data required to perform the database operation; and

performing the database operation by at least loading, from the main memory and into a cache, the one or more memory pages including at least the portion of the data required to perform the database operation.

2. The system of claim 1 , wherein the one or more memory pages includes the first middle element.

3. The system of claim 1 , wherein the data required to perform the database operation further comprises a second middle element of a first half interval of the sorted array and/or a third middle element of a second half interval of the sorted array.

4. The system of claim 3 , wherein the one or more memory pages further includes the second middle element and/or the third middle element.

5. The system of claim 1 , wherein the generation of the one or more memory reduces a frequency of cache misses when the one or more memory pages are loaded into the cache, and wherein the cache miss occurs due to the data required to perform the database operation being absent from the cache.

6. A computer-implemented method, comprising:

identifying an access pattern associated with a database operation, the database operation comprising a binary search on an index comprising a sorted array, the access pattern comprising data required to perform the database operation, and the data required to perform the database operation comprising a first middle element of the sorted array;

generating, based at least on the access pattern, one or more memory pages including at least a portion of the data required to perform the database operation;

storing, in a main memory, the one or more memory pages including at least the portion of the data required to perform the database operation; and

performing the database operation by at least loading, from the main memory and into a cache, the one or more memory pages including at least the portion of the data required to perform the database operation.

7. The computer-implemented method of claim 6 , wherein the one or more memory pages includes the first middle element.

8. The computer-implemented method of claim 6 , wherein the data required to perform the database operation further comprises a second middle element of a first half interval of the sorted array and/or a third middle element of a second half interval of the sorted array.

9. The computer-implemented method of claim 8 , wherein the one or more memory pages further includes the second middle element and/or the third middle element.

10. The computer-implemented method of claim 6 , wherein the generation of the one or more memory reduces a frequency of cache misses when the one or more memory pages are loaded into the cache, and wherein the cache miss occurs due to the data required to perform the database operation being absent from the cache.

11. A non-transitory computer-readable medium storing instructions, which when executed by at least one data processor, result in operations comprising:

identifying an access pattern associated with a database operation, the database operation comprising a binary search on an index comprising a sorted array, the access pattern comprising data required to perform the database operation, and the data required to perform the database operation comprising a first middle element of the sorted array;

generating, based at least on the access pattern, one or more memory pages including at least a portion of the data required to perform the database operation;

storing, in a main memory, the one or more memory pages including at least the portion of the data required to perform the database operation; and

performing the database operation by at least loading, from the main memory and into a cache, the one or more memory pages including at least the portion of the data required to perform the database operation.

12. The computer-readable medium of claim 11 , wherein the one or more memory pages includes the first middle element.

13. The computer-readable medium of claim 11 , wherein the data required to perform the database operation further comprises a second middle element of a first half interval of the sorted array and/or a third middle element of a second half interval of the sorted array.

14. The computer readable medium of claim 13 , wherein the one or more memory pages further includes the second middle element and/or the third middle element.

15. The computer-readable medium of claim 11 , wherein the generation of the one or more memory reduces a frequency of cache misses when the one or more memory pages are loaded into the cache, and wherein the cache miss occurs due to the data required to perform the database operation being absent from the cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2018
From: PSAROPOULOS, GEORGIOS; LEGLER, THOMAS; MAY, NORMAN; AILAMAKI, ANASTASIA
To: SAP SE
Reel/Frame 045148/0039 →
Continuity (1)
Related Publication 20190278858A1 · Sep 12, 2019
Cited By (2)
US 12,579,110 US 12,632,422