Database Table Chunking for Memory-Constrained Query Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large datasets exceeding available memory limits pose challenges for real-time data analysis, as existing database systems struggle to efficiently process data without loading entire tables into memory, leading to increased processing times and resource utilization.

Innovation Solution

The method involves dividing database tables into data chunks, with each chunk processed independently, allowing for parallel or serial processing based on query requirements, and ensuring unique row identifiers are persistent across chunks to facilitate efficient query execution and reduce memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the entire table is loaded into memory for processing, then query execution speed is improved, but memory usage exceeds available memory limits

Engineering Contradiction:
Improvequery execution speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent divides the table into multiple data chunks that can be processed independently. Each chunk is loaded into memory separately, allowing the system to process large tables that exceed available memory by working with smaller manageable segments rather than loading the entire table at once.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If data is processed in chunks, then memory usage is reduced, but processing time increases due to multiple loading operations

Engineering Contradiction:
Improvememory usageVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-processing metadata and maintaining persistent row identifiers across chunks before actual query execution. This preparation work enables more efficient processing during the actual query execution phase, reducing the overall time penalty of chunked processing.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If data chunks are processed independently, then memory resources are optimized, but query complexity increases due to chunk management overhead

Engineering Contradiction:
Improvememory resourcesVSAvoidquery complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer of chunk metadata and persistent row identifiers that mediates between the independent data chunks and the query processing logic. This intermediary structure simplifies the complexity by providing a unified interface for querying across chunks while maintaining the memory efficiency of independent processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If row identifiers are not persistent across chunks, then chunk independence is maintained, but query accuracy decreases due to duplicate or missing rows

Engineering Contradiction:
Improvechunk processing efficiencyVSAvoidquery accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent implements universal persistent row identifiers that function across all data chunks simultaneously. Each row identifier serves multiple purposes: maintaining chunk independence for efficient processing while also ensuring query accuracy by providing a consistent reference that works universally across the entire table regardless of chunk boundaries.

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

Data Source

PatentUS10255316B2Processing of data chunks using a database calculation engine
Publication Date: 2019.04.09 SAP SE
  • US10255316B2 patent drawing
  • US10255316B2 patent drawing
  • US10255316B2 patent drawing

AI summary

A database server receives a request to perform a primary query on a table of a database. A first table query can be generated and can include a starting row identifier, ROW A, and a number of rows, n, for generating a data chunk from the table of the database. Multiple table queries can be performed each having a different starting row identifier and each defining the number of rows forming a data chunk. The primary query can be extended with the first table query in preparation for performing the primary query on the first data chunk.