Stream Processing Out-of-Order Event Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Stream processing systems face challenges in handling out-of-order data due to differences between arrival time and associated time, leading to issues with data compliance and processing efficiency, especially in constrained memory environments.

Innovation Solution

Implementing policies such as early arrival, late arrival, and out-of-order policies to manage and process data streams by establishing compliance limits for arrival times and sequence, allowing for efficient data handling and processing without disrupting end results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is processed strictly in arrival order, then processing simplicity is maintained, but output latency increases and parallel processing cannot be utilized

Engineering Contradiction:
Improveprocessing speedVSAvoiddata management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments data streams into time-based windows or batches, allowing parallel processing of different segments while maintaining temporal ordering within each segment. This enables productivity improvement through parallelism while managing complexity through structured segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary buffering and time-windowing to data before processing, pre-organizing data into manageable units with defined temporal boundaries. This preliminary action enables subsequent parallel processing while ensuring temporal correctness, resolving the contradiction between speed and complexity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If data buffering is increased to handle out-of-order events, then data compliance improves, but memory requirements increase

Engineering Contradiction:
Improvedata complianceVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic buffering where the buffer size and retention period adapt based on observed data patterns and out-of-order event frequencies. This dynamic approach maintains high data compliance while optimizing memory usage by allocating buffer resources only when and where needed, rather than using static over-provisioned buffers.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes buffer parameters (size, timeout, threshold values) based on runtime conditions and data characteristics. By dynamically adjusting these parameters, the system maintains reliable data compliance while adapting memory consumption to actual needs, resolving the contradiction between reliability and quantity of resources.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If parallel processing is implemented, then productivity increases, but ensuring correct temporal ordering of results becomes more difficult

Engineering Contradiction:
Improveprocessing throughputVSAvoidtemporal ordering accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent introduces intermediary components such as timestamp-based sorting mechanisms, barrier synchronization points, and result aggregation buffers that mediate between parallel processing units and the final output. These intermediaries enable high-throughput parallel processing while ensuring temporal ordering accuracy is maintained at the output, resolving the contradiction between productivity and precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9942272B2Handling out of order events
Publication Date: 2018.04.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9942272B2 patent drawing
  • US9942272B2 patent drawing
  • US9942272B2 patent drawing

AI summary

Processing streaming data in accordance with policies that group data by source, enforce a maximum permissible late arrival value for streaming data, a maximum permissible early arrival for data and/or a maximum degree to which data can be out of order and still be compliant with the out of order policy is described. The correct starting point for reading a data stream so as to produce correct output from a given output start time can be enabled using the early arrival policy. Using combinations of policies, output can be generated promptly (with low latency). When input from a given source is not disrupted, output can be generated with low latency. Output can be generated even when the input stops by applying a late arrival policy.