IP Library Granted Patent US 10,853,351
Granted Patent B2
US 10,853,351 · App. 15/457,945 · Granted Dec 1, 2020

Logless atomic data movement

Inventors: Franz Faerber (Walldorf, DE); Juchang Lee (Seoul, KR); Ivan Schreter (Malsch, DE)
Assignee: SAP SE
G06F16/2365G06F3/0604G06F3/065G06F3/0638G06F3/0644G06F3/0647G06F3/0652G06F3/0673G06F3/0683G06F16/162G06F16/1744G06F16/221G06F16/2308G06F16/2379G06F16/27G06F16/28
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,853,351
App. No.
15/457,945
Granted
Dec 1, 2020
Kind
B2
Abstract

A system and method of logless atomic data movement. An internal transaction is started within a multi-level storage architecture, the internal transaction to merge data from the first level storage structure to the second level storage structure. Committed data is read from a first level storage structure of the multi-level storage architecture as specified by the internal transaction. The committed data from the first level storage structure is inserted into a second level storage structure in a bulk insertion process, and the committed data is marked as being deleted from the first level storage. The internal transaction is then committed to the multi-level storage architecture when the committed data has been inserted into the second level storage structure.

Claims (55)

1. A computer-implemented method of log-less atomic data movement for use in a unified table database architecture including a multi-level storage architecture, the multi-level storage architecture including a first level storage structure to store incoming data requests in a logical row format as data records and a second level storage structure to encode and store the data records in a logical column format, the method comprising:

starting, by an in-memory computing system associated with the unified table database architecture, a merge transaction within the multi-level storage architecture to merge data from the first level storage structure to the second level storage structure;

reading, by the in-memory computing system, committed data from the first level storage structure as specified by an internal transaction;

inserting, by the in-memory computing system, the committed data from the first level storage structure into the second level storage structure in a bulk insertion process;

designating, by the in-memory computing system, the committed data in the multi-level storage architecture as being deleted from the first level storage; and

committing, by the in-memory computing system, the internal transaction to the multi-level storage architecture, when the committed data has been inserted into the second level storage structure.

2. The computer-implemented method in accordance with claim 1 , wherein the bulk insertion process includes:

generating, by the in-memory computing system, a page identifier for the committed data; and

creating, by the in-memory computing system, an undo log for the page identifier.

3. The computer-implemented method in accordance with claim 1 , further comprising marking the committed data as being deleted from the first level storage further includes adding a page delete version of the committed data to the first level storage in the multi-level storage architecture.

4. The computer-implemented method in accordance with claim 1 , further comprising:

providing, by the in-memory computing system, a persistent storage layer configured to mimic the first level storage, the persistent storage layer comprising data structures containing value indices associated with data stored on the first level storage; and

removing, by the in-memory computing system, individual data from the persistent storage layer in response to an indication that individual data has been removed from the first level storage and saved to the second level storage of the multi-level storage architecture.

5. The computer-implemented method in accordance with claim 1 , further comprising:

receiving, by the in-memory computing system, a request to merge new data with data stored in the second level storage structure;

determining, by the in-memory computing system, whether the dictionary associated with the new data is a subset of the dictionary associated with the data stored in the second level storage structure; and

generating, by the in-memory computing system, in response to determining that the dictionary associated with the new data is a subset of the dictionary associated with the data stored in the second level storage structure, a dictionary for the combined data based on the dictionary associated with the data stored in the second level storage structure.

6. The computer-implemented method in accordance with claim 1 , further comprising:

determining, by the in-memory computing system, a sort pattern for the columns in the second level storage structure that would provide the highest level of compression for the data as a whole in the multi-level storage architecture; and

sorting, by the in-memory computing system, the columns in the second level storage structure in accordance with the determined sort pattern.

7. A system for log-less atomic data movement in a unified table database architecture comprising:

at least one processor;

a multi-level storage architecture including a first level storage structure to store incoming data requests in a logical row format as data records and a second level storage structure to encode and store the data records in a logical column format; and

at least one non-transitory machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

starting a transaction within the multi-level storage architecture, an internal transaction to move data from the first level storage structure to the second level storage structure;

reading committed data from the first level storage structure as specified by the internal transaction;

inserting the committed data from the first level storage structure into the second level storage structure in a bulk insertion process; and

committing the internal transaction to the multi-level storage architecture, when the committed data has been inserted into the second level storage structure.

8. The system in accordance with claim 7 , wherein the bulk insertion process includes:

generating a page identifier for the committed data; and

creating an undo log for the page identifier.

9. The system in accordance with claim 7 , wherein the operations further comprise marking the committed data as being deleted from the first level storage further includes adding a page delete version of the committed data to the first level storage in the multi-level storage architecture.

10. The system in accordance with claim 7 , further comprising marking designating the committed data in the multi-level storage architecture for deletion from the first level storage after inserting the committed data from the first level storage structure into the second level storage structure.

11. The system in accordance with claim 10 , further comprising deleting the designated committed data from the first level storage of the multi-level storage architecture.

12. A computer-implemented method of log-less atomic data movement in a unified table database architecture, the computer-implemented method performed by an in-memory computing system, the method comprising:

merging, by the in-memory computing system, data from a first level storage structure to a second level storage structure of a multi-level storage database architecture, the first level storage structure configured to store incoming data requests in a logical row format and the second level storage structure configured to encode and store the data records in a logical column format;

designating, by the in-memory computing system, committed data and non-committed data in the first level storage structure;

reading, by the in-memory computing system, the committed data from the first level storage structure as specified by the merge;

inserting, by the in-memory computing system, the committed data from the first level storage structure into the second level storage structure in a bulk insertion process;

designating, by the in-memory computing system, the committed data in the multi-level storage architecture for deletion from the first level storage; and

committing, by the in-memory computing system, the merged data to the multi-level storage architecture, when the committed data has been inserted into the second level storage structure.

13. The computer-implemented method in accordance with claim 12 , wherein the bulk insertion process includes:

generating, by the in-memory computing system, a page identifier for the committed data; and

creating, by the in-memory computing system, an undo log for the page identifier.

14. The computer-implemented method in accordance with claim 12 , wherein the operations further comprise marking the committed data as being deleted from the first level storage further includes adding a page delete version of the committed data to the first level storage.

15. The computer implemented method in accordance with claim 12 , wherein the starting, the reading, the inserting, the marking, and the committing are performed by one or more processors.

16. The computer implemented method in accordance with claim 12 , further comprising marking the committed data as being deleted from the first level storage further includes adding a page delete version of the committed data to the first level storage.

17. The computer implemented method in accordance with claim 12 , further comprising:

providing, by the in-memory computing system, a persistent storage layer configured to mimic the first level storage, the persistent storage layer comprising data structures containing value indices associated with data stored on the first level storage; and

removing individual data from the persistent storage layer in response to an indication that individual data has been removed from the first level storage and saved to the second level storage.

18. The computer implemented method in accordance with claim 12 , further comprising:

determining, by the in-memory computing system, a sort pattern for columns in the second level storage structure;

that would provide the highest level of compression for the data as a whole; and

sorting, by the in-memory computing system, the columns in the second level storage structure in accordance with the determined sort pattern.

19. The computer-implemented method in accordance with claim 12 , further comprising deleting the designated committed data from the first level storage of the multi-level storage architecture.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2019
From: FAERBER, FRANZ; LEE, JUCHANG; SCHRETER, IVAN
To: SAP AG
Reel/Frame 050285/0188 →
CHANGE OF NAME Recorded Sep 5, 2019
From: SAP AG
To: SAP SE
Reel/Frame 050293/0427 →
Continuity (6)
Continuation 14827236 · Aug 14, 2015
Continuation 13843986 · Mar 15, 2013
Continuation 13843986 · Mar 15, 2013
Provisional Application 61646162 · May 11, 2012
Provisional Application 61640689 · Apr 30, 2012
Related Publication 20170185642A1 · Jun 29, 2017