In-Memory Database Function Library Management via Wrapper Mediator

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In-memory database (IMDB) systems face challenges in managing and making known new external function libraries to the kernel, particularly due to the need for detailed parameter descriptions and library management, which is complex and often infeasible given the independent development of libraries from the kernel.

Innovation Solution

A system and method are introduced that use a component instance manager to generate and execute application functions, requesting instances from a package manager, accessing void pointers and wrapper functions to form runtime parameters, and executing functions dynamically, with XML-based parameter descriptions and a standardized approach for application function libraries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If C-style functions are used with function pointers, then the kernel can execute external functions, but all function pointers must be defined in the kernel coding which limits the ability to cover all possible parameters

Engineering Contradiction:
Improveparameter coverageVSAvoidkernel coding complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a wrapper function as an intermediary between the kernel and external C++ functions. The wrapper function has a standardized signature that the kernel can understand, while it internally handles the conversion and invocation of the actual external function with its specific parameters. This mediator layer allows the kernel to maintain simplicity while supporting versatile parameter types.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy of the external function's interface through the wrapper function. Instead of the kernel directly interfacing with the complex external function signatures, the wrapper provides a simplified, standardized interface that copies the essential functionality while adapting to the kernel's expectations. This allows the kernel to work with external functions without needing to know their specific parameter details.

Inventive Principle:
Principle #26Copying

2Ease of operation

If C++ classes are instantiated to run functions, then the function can be executed with proper parameter handling, but the class must be known in the kernel coding which restricts flexibility

Engineering Contradiction:
Improveparameter handlingVSAvoidfunction library flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The wrapper function serves as a mediator that instantiates the C++ class on behalf of the kernel. The kernel calls the wrapper with a void pointer to the class instance, and the wrapper handles the instantiation and method invocation internally. This allows the kernel to execute C++ functions without needing to know or define the specific class types.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If detailed parameter descriptions are transferred to the database catalog, then the function can be properly registered, but the task cannot be done by application logic developers due to platform-dependent alignment requirements

Engineering Contradiction:
Improvefunction registration accuracyVSAvoidparameter description complexity
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The wrapper function acts as an intermediary that handles the parameter description translation. Instead of application developers needing to manually specify detailed platform-dependent parameter descriptions in the database catalog, the wrapper function internally manages the conversion between the standardized kernel interface and the actual external function parameters. This abstraction layer eliminates the complexity of manual parameter description.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If library management mechanism is implemented for each library, then library loading and unloading can be controlled, but it is infeasible and impossible as libraries are developed independent of the kernel

Engineering Contradiction:
Improvelibrary loading controlVSAvoidlibrary management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal library management mechanism that works for all external function libraries regardless of their specific implementation details. The kernel maintains a single registry of loaded libraries and their associated wrapper functions, providing a unified approach to library management. This universal mechanism allows the kernel to control library loading and unloading without needing to understand or manage each library's specific internals, making it feasible despite libraries being developed independently.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9032419B2Application function library framework
Publication Date: 2015.05.12 SAP SE
  • US9032419B2 patent drawing
  • US9032419B2 patent drawing
  • US9032419B2 patent drawing

AI summary

A component instance manager of a database system generates an instance of the application function. The component instance manager then generates an executor for the application function, and requests an instance of a component class of the application function from a package manager of the database system. A void pointer associated with the instance of the component class and a wrapper function address associated with the application function are accessed by the component instance manager, where the void pointer and wrapper function address comprise runtime parameters of the application function. The application function is thereafter executed by the executor according to the runtime parameters.