IP Library Granted Patent US 9,594,799
Granted Patent B2
US 9,594,799 · App. 14/827,236 · Granted Mar 14, 2017

Logless atomic data movement

Inventors: Franz Faerber (Walldorf, DE); Juchang Lee (Seoul, KR); Ivan Schreter (Malsch, DE)
Assignee: SAP SE
G06F17/30377G06F3/0604G06F3/065G06F3/0644G06F3/0683G06F17/30153G06F17/30315G06F17/30348G06F17/30575G06F17/30587
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 9,594,799
App. No.
14/827,236
Granted
Mar 14, 2017
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 (65)

1. A computer-implemented method of log-less atomic data movement for use in a unified table database architecture of an in-memory computing system having a multi-level storage architecture, the multi-level storage architecture having 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 the in-memory computing system, an internal transaction within the multi-level storage architecture, the internal transaction 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 the 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;

marking, 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;

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

7. A computer implemented method of log-less atomic data movement comprising:

providing a unified table database architecture of an in-memory computing system, the unified table architecture having a multi-level storage architecture, the multi-level storage architecture having 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;

starting, by the in-memory computing system, an internal transaction within the multi-level storage architecture, the internal transaction 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 the 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;

marking, 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.

8. The computer implemented method in accordance with claim 7 , 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.

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

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

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

at least one programmable processor;

a multi-level storage architecture having 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

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

starting an internal transaction within the multi-level storage architecture, the internal transaction to merge 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;

marking the committed data in the multi-level storage architecture as being deleted from the first level storage; and

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

12. The system in accordance with claim 11 wherein the bulk insertion process includes:

generating a page identifier for the committed data; and

creating an undo log for the page identifier.

13. The system in accordance with claim 11 , 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.

14. 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 computer 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;

differentiating, by the in-memory computing system, between 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;

marking, 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 merged data to the multi-level storage architecture when the committed data has been inserted into the second level storage structure.

15. The computer-implemented method in accordance with claim 14 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.

16. The computer-implemented method in accordance with claim 14 , 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.

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

18. The computer implemented method in accordance with claim 14 , 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.

19. The computer implemented method in accordance with claim 14 , 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.

20. The computer implemented method in accordance with claim 14 , 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;

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

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2015
From: FAERBER, FRANZ; LEE, JUCHANG; SCHRETER, IVAN
To: SAP SE
Reel/Frame 036333/0562 →
Continuity (4)
Continuation 13843986 · Mar 15, 2013
Provisional Application 61646162 · May 11, 2012
Provisional Application 61640689 · Apr 30, 2012
Related Publication 20160042028A1 · Feb 11, 2016