Database Server Code Accelerator for Parallel Data Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in efficiently processing large amounts of data in parallel, particularly in distributing and executing programs across multiple nodes in a computing system, which can lead to inefficiencies and potential service interruptions when handling real-time data streams.

Innovation Solution

A computer-program product and method that enables a computing system to receive a program, determine if it contains thread and data program components, and generate computer-generated instructions in a different language for parallel execution, depending on specified key information for data partitioning and grouping, allowing for efficient parallel processing of data across multiple sets of partitioned data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is processed sequentially on a single node, then system complexity is reduced, but processing speed and productivity deteriorate

Engineering Contradiction:
Improvedata processing speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the computing system into multiple nodes, each capable of independently processing partitions of data. The program is automatically partitioned and distributed across these nodes, allowing parallel processing while maintaining manageable complexity at each node through clear separation of responsibilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-node sequential processing to multi-node parallel processing by adding the spatial dimension of distribution. Data and computation are distributed across multiple dimensions (nodes), enabling simultaneous execution of multiple processing tasks that would otherwise be sequential.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If parallel processing is implemented across multiple nodes, then productivity improves, but system reliability deteriorates due to potential service interruptions

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidservice continuity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary actions by pre-partitioning data and pre-distributing processing tasks across multiple nodes before actual processing begins. This preparation ensures that if one node fails, other nodes already have the necessary data and instructions to continue processing, maintaining service continuity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements beforehand cushioning through redundant node deployment and distributed processing. If one node experiences service interruption, the system has预先 prepared other nodes that can absorb the failure and continue processing, providing a buffer against reliability issues.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Ease of operation

If automatic program partitioning and code generation is implemented, then ease of operation improves, but device complexity worsens

Engineering Contradiction:
Improveprogram deployment simplicityVSAvoidcode generation system complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling the system to automatically partition programs, generate code, and distribute tasks without requiring manual intervention. The system serves itself by autonomously managing the complexity of parallel processing setup, making it easy for users to deploy complex distributed applications.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary code generation component that acts as a mediator between the high-level program specification and the low-level distributed execution details. This intermediary automatically translates user-friendly program definitions into optimized parallel execution code, shielding users from the underlying system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If data is partitioned and distributed across multiple nodes, then processing efficiency improves, but loss of information worsens due to potential data distribution errors

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms that monitor data distribution and processing across nodes. The system continuously checks for data integrity, verifies correct partitioning, and provides feedback to correct any distribution errors, ensuring that no information is lost during the partitioning and distributed processing operations.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11042549B2Database server embedded process and code accelerator
Publication Date: 2021.06.22 SAS INSTITUTE INC
  • US11042549B2 patent drawing
  • US11042549B2 patent drawing
  • US11042549B2 patent drawing

AI summary

A computing system receives a program. The program is in a first computer language and specifies computer operations on stored data. The computing system is configured to partition the stored data into sets of partitioned data for performing parallel execution on each of the sets of partitioned data. The computing system determines whether the program comprises a thread program component. The computing system, responsive to determining that the program comprises a thread program component, generates computer-generated computer instructions. The computer-generated computer instructions are in a second computer language. The computer-generated computer instructions are dependent on whether the thread program component specifies information for partitioning and grouping the stored data; whether the program comprises a data program component; or whether the data program component specifies information for partitioning and grouping the output data of the thread program component. The computing system executes the program according to the computer-generated computer instructions.