IP Library › Granted Patent US 11,423,000
Granted Patent B2
US 11,423,000 · App. 16/878,894 · Granted Aug 23, 2022

Data transfer and management system for in-memory database

Inventors: Nilesh Gohad (Pune, IN); Adrian Dragusanu (North Vancouver, CA); Neeraj Kulkarni (Berlin, DE); Dheren Gala (Bangalore, IN)
Assignee: SAP SE
G06F16/2282G06F9/54G06F12/0882G06F16/221G06F16/2237G06F16/24552
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 11,423,000
App. No.
16/878,894
Filed
May 20, 2020
Granted
Aug 23, 2022
Kind
B2
Art Unit
2153
USPC
707/609
Abstract

Various embodiments for providing a data transfer and management system are described herein. An embodiment operates by determining that data of a column is stored in a column loadable format in which all of the data of the column is moved from the disk storage location to a memory responsive to a data request. A data vector that identifies a plurality of value IDs corresponding to at least a subset of the plurality of rows of the column, is identified. A page format that provides that a portion of the data of the column across a subset of the plurality of rows is moved from the second disk storage location into the memory responsive to the data request is determined. The entries of the data vector are requested, converted from column loadable format into the page persistent format, and stored across one or more memory pages.

Claims (58)

1. A method comprising:

determining that data of a column is stored in a column loadable format in a first disk storage location, wherein the column loadable format provides that all of the data of the column across a plurality of rows corresponding to the data of the column is moved from the first disk storage location to a memory responsive to a data request;

identifying a source data vector associated with the data of the column that identifies a plurality of value IDs corresponding to at least a subset of the plurality of rows of the column, wherein the plurality of value IDs correspond to a plurality of entries in a data dictionary;

determining a page persistent format corresponding to a second disk storage location, wherein the page persistent format provides that a portion of the data of the column as stored across the values IDs of the data vector and corresponding entries in the data dictionary is moved from the second disk storage location into the memory responsive to the data request;

converting the value IDs of the data vector corresponding to the plurality of rows into the page persistent format;

converting the corresponding entries of the data dictionary corresponding to the converted value IDs of the data dictionary into the page persistent format; and

storing the converted value IDs of the data vector on a memory page and the corresponding entries of the data dictionary at the second disk storage location in the page persistent format, wherein the memory page and corresponding entries of the data dictionary are moved from the second disk storage location to the memory responsive to the data request.

2. The method of claim 1 , wherein the column is part of a table of an in-memory database.

3. The method of claim 1 , further comprising:

repeating the converting the value IDs, the converting the corresponding entries, and the storing until all of the plurality of rows of the column, corresponding to entries in the data vector, are stored across a plurality of memory pages at the second disk storage location in the page persistent format.

4. The method of claim 1 , wherein the requesting comprises:

calling a function of a source application programming interface (API) corresponding to the column loadable format, wherein the function is configured to retrieve the subset of the entries from the data vector, corresponding to the plurality of rows of the column, from the first disk storage location.

5. The method of claim 4 , wherein the converting comprises:

calling a function of a target API corresponding to the page persistent format, wherein the function is configured to convert requested entries from the data vector, corresponding to a subset of the plurality of rows, from the column loadable format into t page persistent format.

6. The method of claim 5 , further comprising:

identifying an index for the data vector;

requesting a plurality of entries from the index; and

calling the function of the target API that is configured to convert the requested plurality of entries from the index from the column loadable format into the page persistent format.

7. The method of claim 4 , further comprising:

requesting an entry of the data dictionary corresponding to a first one of the plurality of value IDs of the data dictionary;

calling the function of the target API configured to convert the requested entry of the data dictionary from the column loadable format into the page persistent format; and

repeating the requesting the entry and the calling the function of the target API configured to convert the requested entry for each subsequent value ID of the plurality of value IDs of the data dictionary.

8. The method of claim 7 , wherein the plurality of value IDs of the data dictionary are in a sorted order prior to the requesting the entry and remain in the sorted order throughout the repeating the requesting the entry.

9. The method of claim 1 , wherein at least a portion of the requested subset of the plurality of entries is compressed and remains compressed throughout both the converting the value IDs, the converting the corresponding entries, and the storing.

10. A system comprising:

a memory; and

at least one processor coupled to the memory and configured to perform operations comprising:

determining that data of a column is stored in a column loadable format in a first disk storage location, wherein the column loadable format provides that all of the data of the column across a plurality of rows corresponding to the data of the column is moved from the first disk storage location to a memory responsive to a data request;

identifying a source data vector associated with the data of the column that identities a plurality of value IDs corresponding to at least a subset of the plurality of rows of the column, wherein the plurality of value IDs correspond to a plurality of entries in a data dictionary;

determining a page persistent format corresponding to a second disk storage location, wherein the page persistent format provides that a portion of the data of the column as stored across the values IDs of the data vector and corresponding entries in the data dictionary is moved from the second disk storage location into the memory responsive to the data request;

converting the value IDs of the data vector corresponding to the plurality of rows into the page persistent format;

converting the corresponding entries of the data dictionary corresponding to the converted value IDs of the data dictionary into the page persistent format; and

storing the converted value IDs of the data vector on a memory page and the corresponding entries of the data dictionary at the second disk storage location in the page persistent format, wherein the memory page and corresponding entries of the data dictionary are moved from the second disk storage location to the memory responsive to the data request.

11. The system of claim 10 , wherein the column is part of a table of an in-memory database.

12. The system of claim 10 , the operations further comprising:

repeating the converting the value IDs, the converting the corresponding entries, and the storing until all of the plurality of rows of the column, corresponding to entries in the data vector, are stored across a plurality of memory pages at the second disk storage location in the page persistent format.

13. The system of claim 10 , wherein the requesting comprises:

calling a function of a source application programming interface (API) corresponding to the column loadable format, wherein the function is configured to retrieve the subset of the entries from the data vector, corresponding to the plurality of rows of the column, from the first disk storage location.

14. The system of claim 13 , wherein the converting comprises:

calling a function of a target API corresponding to the page persistent format, wherein the function is configured to convert requested entries from the data vector, corresponding to a subset of the plurality of rows, from the column loadable format into the page persistent format.

15. The system of claim 14 , the operations further comprising:

identifying an index for the data vector;

requesting a plurality of entries from the index; and

calling the function of the target API that is configured to convert the requested plurality of entries from the index from the column loadable format into the page persistent format.

16. The system of claim 13 , the operations further comprising

requesting an entry of the data dictionary corresponding to a first one of the plurality of value IDs of the data dictionary;

calling the function of the target API configured to convert the requested entry of the data dictionary from the column loadable format into the page persistent format; and

repeating the requesting the entry and the calling the function of the target API configured to convert the requested entry for each subsequent value ID of the plurality of value IDs of the data dictionary.

17. The system of claim 16 , wherein the plurality of value IDs of the data dictionary are in a sorted order prior to the requesting the entry and remain in the sorted order throughout the repeating the requesting the entry.

18. The system of claim 10 , wherein at least a portion of the requested subset of the plurality of entries is compressed and remains compressed throughout both the converting the value IDs, the converting the corresponding entries, and the storing.

19. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

determining that data of a column is stored in a column loadable format in a first disk storage location, wherein the column loadable format provides that all of the data of the column across a plurality of rows corresponding to the data of the column is moved from the first disk storage location to a memory responsive to a data request;

identifying a source data vector associated with the data of the column that identifies a plurality of value IDs corresponding to at least a subset of the plurality of rows of the column, wherein the plurality of value IDs correspond to a plurality of entries in a data dictionary;

determining a page persistent format corresponding to a second disk storage location, wherein the page persistent format provides that a portion of the data of the column as stored across the values Ms of the data vector and corresponding entries in the data dictionary is moved from the second disk storage location into the memory responsive to the data request;

converting the value IDs of the data vector corresponding to the plurality of rows into the page persistent format;

converting the corresponding entries of the data dictionary corresponding to the converted value IDs of the data dictionary into the page persistent format; and

storing the converted value IDs of the data vector on a memory page and the corresponding entries of the data dictionary at the second disk storage location in the page persistent format, wherein the memory page and corresponding entries of the data dictionary are moved from the second disk storage location to the memory responsive to the data request.

20. The device of claim 19 , wherein the column is part of a table of an in-memory database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2020
From: GOHAD, NILESH; DRAGUSANU, ADRIAN; KULKARNI, NEERAJ; GALA, DHEREN
To: SAP SE
Reel/Frame 052715/0536 →
Priority Claims (1)
IN 202011014712 · Apr 2, 2020 · national
Continuity (1)
Related Publication 20210311923A1 · Oct 7, 2021