Streaming Join Operator Synchronization via Time Estimation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in joining out-of-order streams with significant latency and high memory consumption, particularly when dealing with real-time data from diverse event sources, which hinders real-time analytics and production issue detection.

Innovation Solution

A streaming join operator that uses adaptive stream synchronization based on tuple event times, pacing data consumption and reducing memory footprint, while maintaining high accuracy and fault tolerance by estimating stream processing times and leveraging a persistent message bus for state management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If streams are joined using a join operator to handle out-of-order data, then join accuracy is improved, but memory consumption increases significantly

Engineering Contradiction:
Improvejoin accuracyVSAvoidmemory consumption
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The system performs preliminary stream time estimation and synchronization before the actual join operation. By estimating processing times and synchronizing streams in advance, the system prepares data in a time-ordered manner that reduces the memory buffer requirements during the join operation itself

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts stream processing based on estimated processing times. By continuously monitoring and adapting the synchronization point between streams based on their respective processing speeds and ordering characteristics, the system optimizes memory usage while maintaining join accuracy

Inventive Principle:
Principle #15Dynamics

2Productivity

If streams are processed with different delays to handle real-time data ingestion, then data processing speed is improved, but stream synchronization becomes difficult

Engineering Contradiction:
Improvedata processing speedVSAvoidstream synchronization
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The system uses feedback from stream time estimations to continuously adjust synchronization. By monitoring the processing progress and time characteristics of each stream, the system dynamically determines optimal synchronization points that accommodate different processing speeds while maintaining correct join semantics

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the time parameter perspective by working with estimated processing times rather than raw event times. This parameter transformation allows the system to handle streams with different delays by synchronizing based on processed time windows rather than absolute time, enabling faster processing while maintaining synchronization

Inventive Principle:
Principle #35Parameter changes

3Reliability

If data is buffered to maintain join accuracy for out-of-order streams, then join correctness is improved, but latency increases

Engineering Contradiction:
Improvejoin correctnessVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary time estimation and stream synchronization before the join operation, preparing data in advance in a time-ordered manner. This preliminary organization reduces the need for extensive buffering during the actual join, thereby reducing latency while maintaining correctness

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies partial buffering strategies by synchronizing streams at estimated time points rather than waiting for complete data availability. By processing joins at dynamically determined synchronization points based on stream time estimations, the system achieves acceptable join correctness with reduced buffering and lower latency

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11556543B1Streaming joins with synchronization via stream time estimations
Publication Date: 2023.01.17 META PLATFORMS INC
  • US11556543B1 patent drawing
  • US11556543B1 patent drawing
  • US11556543B1 patent drawing

AI summary

Two streams of data items are received. A first estimated processing time for the first stream of data items and a second estimated processing time for the second stream of data items are determined. Data items of the first stream and data items of the second stream are dynamically maintained in a first buffer and a second buffer respectively. The data items of the second stream maintained in the second buffer have associated event times that are within a first join window based on the first estimated processing time for the first stream. A selected data item of the first stream maintained in the first buffer is joined with one or more data items of the second stream maintained in the second buffer that have associated event times that are within a second join window based on an event time associated with the selected data item of the first stream.