Extensible Skeletons for Parallel In-Memory Database Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In-memory databases face challenges in leveraging parallelism effectively, as developers must explicitly program and synchronize custom code, leading to suboptimal parallel execution and performance opportunities being missed.

Innovation Solution

An execution framework that allows developers to write sequential computational logic, which is then transformed into parallel execution plans using extensible algorithmic skeletons, enabling the system to automatically optimize and execute custom business logic in parallel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers explicitly program parallelism and synchronization in custom code, then parallel execution capability is achieved, but programming complexity and difficulty increase

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (the execution framework with skeletons) between the developer's sequential code and the parallel execution environment. This intermediary automatically handles the parallelization process, allowing developers to write simple sequential code while the system translates it to efficient parallel execution without requiring developers to directly manage parallelism or synchronization complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The execution framework performs self-service by automatically analyzing sequential code and generating appropriate parallel execution plans without requiring explicit developer intervention. The system autonomously determines how to parallelize the code, manage synchronization, and optimize performance, thereby resolving the contradiction between achieving parallel execution and maintaining programming simplicity

Inventive Principle:
Principle #25Self-service

2Reliability

If developers explicitly define synchronization points, then correct parallel execution is ensured, but development time and effort increase

Engineering Contradiction:
Improvecorrect parallel executionVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The execution framework autonomously identifies critical sections and insertion points for synchronization within sequential code, automatically generating the necessary synchronization constructs without requiring developers to manually define them. This self-service approach ensures correct parallel execution while eliminating the time-consuming manual synchronization definition process

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the manual mechanical process of identifying and inserting synchronization points with an automated analysis system. The framework uses static analysis and runtime information to automatically determine where synchronization is needed, substituting the time-consuming manual process with an automated mechanism that ensures correctness without developer intervention

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of operation

If the system executes custom code sequentially, then programming simplicity is maintained, but performance opportunities are lost

Engineering Contradiction:
Improveprogramming simplicityVSAvoidexecution performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The execution framework acts as an intermediary that transparently transforms sequential code into parallel execution without requiring changes to the developer's code. This mediator layer automatically analyzes the sequential code, identifies parallelization opportunities, and generates optimized parallel execution plans, thereby maintaining programming simplicity while capturing performance opportunities

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary analysis of sequential code during compilation or load time to identify parallelization opportunities before execution. By pre-processing the code to determine optimal parallelization strategies, the system prepares execution plans that can be efficiently executed in parallel without requiring developers to rewrite code or manually analyze performance opportunities

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If the degree of parallelism is defined by the programmer, then control over execution is achieved, but optimal parallelism may not be realized at runtime

Engineering Contradiction:
Improveexecution controlVSAvoidoptimal parallelism
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The execution framework dynamically determines the degree of parallelism at runtime based on available system resources, workload characteristics, and code analysis, rather than relying on static programmer definitions. This dynamic approach allows the system to adapt to changing conditions and realize optimal parallelism automatically, while still providing developers with control through the ability to specify preferences or constraints when needed

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9535975B2Parallel programming of in memory database utilizing extensible skeletons
Publication Date: 2017.01.03 SAP SE
  • US9535975B2 patent drawing
  • US9535975B2 patent drawing
  • US9535975B2 patent drawing

AI summary

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.