Out-of-Order Incremental Data Processing via Computation Graph

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for handling out-of-order and late arriving data in e-commerce platforms are inefficient, leading to inaccurate results and high computational costs, as they either invalidate windows or require reprocessing of all data, resulting in data loss and outdated results.

Innovation Solution

The implementation of a system that uses a computation graph with execution nodes configured for out-of-order incremental processing, allowing new data to be processed irrespective of order, ensuring all data is accounted for and maintaining up-to-date results with reduced computational expense.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If windowing is used to handle out of order data, then latency is reduced, but computational efficiency deteriorates and data loss occurs

Engineering Contradiction:
ImprovelatencyVSAvoidcomputational efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent segments the data processing into incremental updates rather than complete window reprocessing. When out-of-order data arrives, only the affected partitions are updated incrementally, not the entire window, thus maintaining low latency while improving computational efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts processing based on data arrival patterns. It maintains a dynamic state that can accommodate out-of-order arrivals without invalidating the entire window, allowing continuous processing with minimal re computation.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If lifetime processing is used to handle out of order data, then data accuracy is improved, but computational expense increases significantly

Engineering Contradiction:
Improvedata accuracyVSAvoidcomputational expense
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

Instead of reprocessing the entire dataset (excessive action), the patent applies partial processing only to the affected partitions where out-of-order data arrived. This maintains data accuracy while significantly reducing computational expense by avoiding redundant processing of unaffected data.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If windowing is used to handle out of order data, then computational efficiency is maintained, but data loss occurs and results become inaccurate

Engineering Contradiction:
Improvecomputational efficiencyVSAvoiddata loss
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system implements feedback mechanisms that track data arrival patterns and identify out-of-order arrivals. This feedback enables the system to adjust processing to include late-arriving data in the appropriate partitions, preventing data loss while maintaining computational efficiency through targeted incremental updates.

Inventive Principle:
Principle #23Feedback

4Measurement precision

If lifetime processing is used to ensure all data is processed, then data accuracy is improved, but results become outdated due to reprocessing time

Engineering Contradiction:
Improvedata accuracyVSAvoidresult timeliness
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent prepares data structures and processing pipelines in advance so that when out-of-order data arrives, it can be quickly integrated through incremental updates rather than requiring complete reprocessing. This preliminary preparation enables both accurate and timely results.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11397727B2Processing late arriving and out of order data
Publication Date: 2022.07.26 SHOPIFY INC
  • US11397727B2 patent drawing
  • US11397727B2 patent drawing
  • US11397727B2 patent drawing

AI summary

Systems and methods for processing out of order data incrementally are provided. A database is maintained containing rows of data, each row of data having a timestamp and pertaining to a transaction, for example in the e-commerce platform. New data for new rows of data is received. At least some of the data is out of order. Each new row of data is processed in the same manner irrespective of whether the row is out of order or in order using a computation graph including at least one execution node configured to perform out-of-order incremental processing. A processing result is output based on the processing, wherein the result is up to date based on data that has been received.