Dynamic Parallel Data Loading via Segmented Scanning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Loading large data files into databases is a time-consuming process, particularly in retail applications, which can significantly cut into batch windows and increase operational costs, necessitating an improvement in data loading efficiency.

Innovation Solution

A system that parallelizes data loading by scanning and loading data files in sequential segments across multiple exclusive-access memory blocks in a lock-step mode, allowing for dynamic segmentation and simultaneous execution of read and write operations, thereby optimizing the data loading process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If data is loaded sequentially into database memory blocks, then data loading simplicity is maintained, but data loading time increases significantly

Engineering Contradiction:
Improvedata loading timeVSAvoiddata loading process complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The data file is divided into multiple segments that can be processed in parallel. Each segment is loaded into a separate memory block simultaneously, reducing overall loading time. The segmentation allows the system to process multiple portions of data concurrently rather than sequentially.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs a preliminary scan of the data file to determine segment boundaries and memory block assignments before actual loading begins. This preliminary action enables the subsequent parallel loading phase to proceed efficiently without runtime conflicts or sequential dependencies.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple memory blocks are used for parallel data loading, then data loading speed improves, but coordination complexity increases

Engineering Contradiction:
Improvedata loading speedVSAvoidmemory block coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Memory block assignments and segment mappings are determined in advance during the preliminary scan phase. This eliminates the need for complex runtime coordination between multiple memory blocks, as each block's content and source segment are predetermined before parallel loading begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each memory block independently loads its assigned segment without requiring active coordination with other blocks. The blocks self-manage their loading operations autonomously based on pre-determined assignments, reducing the overall system coordination overhead.

Inventive Principle:
Principle #25Self-service

3Productivity

If sequential scanning and loading is performed, then resource requirements are reduced, but batch window availability decreases

Engineering Contradiction:
Improvebatch window availabilityVSAvoidsystem resource requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The data file and memory blocks are segmented to enable parallel processing. Multiple segments are scanned and loaded simultaneously into different memory blocks, utilizing available system resources in parallel to complete the batch operation within the available window.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the number of parallel scanning and loading operations based on available system resources. It can scale the degree of parallelization to match resource availability, optimizing batch window utilization without requiring excessive resources.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10719372B2Dynamic parallelization of data loading
Publication Date: 2020.07.21 ORACLE INT CORP
  • US10719372B2 patent drawing
  • US10719372B2 patent drawing
  • US10719372B2 patent drawing

AI summary

A system for dynamically parallelizing the loading operation for loading a data file onto a database. The dynamic parallelization of the loading operation involves scanning the data file in segments, such that scanning of an individual segment terminates when the scanned information is enough to enable loading of the segment across a plurality of exclusive-access memory blocks. Following the scanning of the first data file segment, the parallelized loading of each scanned segment occurs in a lock-step-mode with the scanning operation. As such, the loading of each scanned data segment is performed in parallel across multiple exclusive-access memory location, as determined by the prior scanning results, and furthermore in parallel with the scanning of a subsequent segment of the data file.