Multi-threaded Data File Ingestion via Offset Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems face bottlenecks in ingesting large data files due to single-threaded processing, which increases the overall time taken for data ingestion and is exacerbated by the overhead of splitting files into smaller pieces.

Innovation Solution

Implementing a multi-threaded ingestion method that determines the number of processing threads based on available resources and file characteristics, such as row delimiters, to ingest data files in parallel, thereby reducing the time required for data ingestion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If single-threaded processing is used to ingest data files, then the processing simplicity is maintained, but the data ingestion speed is limited and bottlenecks occur with large files

Engineering Contradiction:
Improvedata ingestion speedVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the data file into multiple segments and assigns each segment to a different processing thread. This segmentation allows parallel processing of file portions, significantly increasing data ingestion speed while managing complexity through systematic division of work.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-threaded sequential processing to multi-threaded parallel processing by utilizing the time dimension. Multiple threads process different file segments simultaneously, effectively adding a parallel processing dimension that dramatically improves ingestion throughput.

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

2Productivity

If data files are split into multiple pieces using UNIX split command, then the ingestion capability is improved, but the overall time taken increases due to splitting overhead

Engineering Contradiction:
Improvedata ingestion capabilityVSAvoidfile splitting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and storing offset positions in a lookup table during a first pass through the file. This preliminary indexing allows subsequent threads to directly access specific positions without requiring time-consuming file splitting operations, thereby eliminating the time loss associated with traditional splitting methods.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of physically splitting the file into separate pieces, the patent creates virtual copies of file segments by using offset positions and lookup tables. This allows multiple threads to read from different portions of the same file simultaneously without actual file division, eliminating the time overhead of physical splitting while maintaining parallel processing capability.

Inventive Principle:
Principle #26Copying

3Productivity

If multi-threaded processing is implemented, then the data ingestion speed is significantly increased, but the system complexity and thread management overhead increase

Engineering Contradiction:
Improvedata ingestion throughputVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where each processing thread independently manages its own execution. Threads autonomously retrieve segments from the lookup table, process data, and complete operations without requiring centralized coordination or complex inter-thread communication, thereby reducing management overhead while maintaining high throughput.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes key parameters by using a lookup table to store offset positions and segment information. This parameter transformation allows threads to access file positions directly through table lookups rather than complex calculations or sequential processing, simplifying thread management while dramatically improving ingestion throughput.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12086101B2Systems and methods for ingesting data files using multi-threaded processing
Publication Date: 2024.09.10 CVS PHARMACY INC
  • US12086101B2 patent drawing
  • US12086101B2 patent drawing
  • US12086101B2 patent drawing

AI summary

In some instances, a method for ingesting data files is provided. The method comprises: obtaining, by an ingestion system associated with a distributed file system, a data file from an external data source; determining, by the ingestion system, a plurality of processing threads within the ingestion system to use to process the data file; determining, by the ingestion system, one or more offsets within the data file based on the plurality of determined processing threads; and ingesting, by the ingestion system, the data file by having each of the plurality of processing threads begin processing the data file at a plurality of different locations within the data file, wherein the plurality of different locations are associated with the one or more offsets.