IP Library Granted Patent US 9,063,710
Granted Patent B2
US 9,063,710 · App. 13/924,105 · Granted Jun 23, 2015

Parallel programming of in memory database utilizing extensible skeletons

Inventors: Christof Bornhoevd (Belmont, CA); Wolfgang Lehner (Waldorf, DE)
Assignee: SAP SE
G06F8/20G06F8/314
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,063,710
App. No.
13/924,105
Granted
Jun 23, 2015
Kind
B2
Abstract

An execution framework allows developers to write sequential computational logic, constrained for the runtime system to efficiently parallelize execution of custom business logic. The framework can be leveraged to overcome limitations in executing low level procedural code, by empowering the system runtime environment to parallelize this code. Embodiments employ algorithmic skeletons in the realm of optimizing/executing data flow graphs of database management systems. By providing an extensible set of algorithmic skeletons the developer of custom logic can select the skeleton appropriate for new custom logic, and then fill in the corresponding computation logic according to the structural template of the skeleton. The skeleton provides a set of constraints known to the execution environment, that can be leveraged by the optimizer and the execution environment to generate parallel optimized execution plans containing custom logic, without the developer having to explicitly describe parallelization of the logic.

Claims (32)

1. A computer-implemented method comprising:

in a design time environment,

providing compute logic for data management to a parallelization engine as a first input, wherein the parallelization engine is a calculation engine of a single in-memory database;

providing a skeleton template to the parallelization engine as a second input, the skeleton template selected from a given set of existing skeleton templates and including a constraint matching the compute logic, and

causing the parallelization engine to reference the skeleton template to transform the compute logic into an instantiation of a skeleton describing the compute logic; and

in a run time environment, causing the parallelization engine to embed the instantiation into a parallel execution plan for execution of SQL operations in parallel on data of the in-memory database.

2. A method as in claim 1 wherein the parallel execution plan further comprises an additional data operation.

3. A method as in claim 2 wherein the additional data operation comprises a relational operator.

4. A method as in claim 1 wherein the parallel execution plan further comprises an additional skeleton instance.

5. A method as in claim 1 wherein the compute logic is transformed into the instantiation according to a calculation model comprising a data flow graph.

6. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:

in a design time environment,

providing compute logic for data management to a parallelization engine as a first input, wherein the parallelization engine is a calculation engine of a single in-memory database,

providing a skeleton template to the parallelization engine as a second input, the skeleton template selected from a given set of existing skeleton templates and including a constraint matching the compute logic, and

causing the parallelization engine to reference the skeleton template to transform the compute logic into an instantiation of a skeleton describing the compute logic; and

in a run time environment, causing the parallelization engine to embed the instantiation into a parallel execution plan for execution of SQL operations in parallel on data of the in-memory database.

7. A non-transitory computer readable storage medium as in claim 6 wherein the parallel execution plan further comprises an additional data operation.

8. A non-transitory computer readable storage medium as in claim 7 the additional data operation comprises a relational operator.

9. A non-transitory computer readable storage medium as in claim 6 wherein the parallel execution plan further comprises an additional skeleton instance.

10. A non-transitory computer readable storage medium as in claim 6 wherein the compute logic is transformed into the instantiation according to a calculation model comprising a data flow graph.

11. A computer system comprising:

one or more processors;

a software program, executable on said computer system, the software program configured to:

in a design time environment,

provide compute logic for data management to a parallelization engine as a first input, wherein the parallelization engine is a calculation engine of a single in-memory database,

provide a skeleton template to the parallelization engine as a second input, the skeleton template selected from a given set of existing skeleton templates and including a constraint matching the compute logic, and

cause the parallelization engine to reference the skeleton template to transform the compute logic into an instantiation of a skeleton describing the compute logic; and

in a run time environment, cause the parallelization engine to embed the instantiation into a parallel execution plan for execution of SQL operations in parallel on data of the in-memory database.

12. A computer system as in claim 11 wherein the parallel execution plan further comprises an additional data operation.

13. A computer system as in claim 12 wherein the additional data operation comprises a relational operator.

14. A computer system as in claim 11 wherein the parallel execution plan further comprises an additional skeleton instance.

15. A computer system as in claim 11 wherein the compute logic is transformed into the instantiation according to a calculation model comprising a data flow graph.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2013
From: BORNHOEVD, CHRISTOF; LEHNER, WOLFGANG
To: SAP AG
Reel/Frame 030663/0899 →
Continuity (1)
Related Publication 20140380266A1 · Dec 25, 2014