Streaming Query Engine for Progressive Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for processing large data sets, such as 'big data,' often result in non-interactive experiences due to the long time required to complete queries, making it difficult for developers to debug and receive timely results, especially when dealing with massive datasets.

Innovation Solution

The technique involves converting relational queries into streaming queries and associating progress intervals with data items, allowing a stream engine to provide incremental results, enabling partial and meaningful results to be generated and updated as the query progresses, even for atemporal data sets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional batch processing is used for large data sets, then complete query results are obtained, but the query execution time becomes excessively long and non-interactive

Engineering Contradiction:
Improvequery result completenessVSAvoidquery execution time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the query execution process into incremental progress intervals, where results are computed and returned in discrete chunks rather than waiting for complete processing. Each progress interval represents a portion of the data set that has been processed, allowing users to receive partial results progressively while the system continues processing the remaining data in the background.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary processing actions on portions of the data set before the complete query execution finishes. By pre-computing results for early progress intervals and making them available immediately, the system provides useful output without waiting for the entire data set to be processed, effectively performing useful work in advance of complete execution.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If traditional batch processing is used for large data sets, then accurate complete results are obtained, but interactive debugging becomes difficult

Engineering Contradiction:
Improvequery result accuracyVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The system implements feedback by continuously providing incremental query results at each progress interval to the user interface. This allows developers to observe intermediate results, identify errors in their queries, and debug issues in real-time without waiting for complete execution. The feedback loop enables iterative query refinement while maintaining accuracy through progressive validation.

Inventive Principle:
Principle #23Feedback

3Productivity

If progressive query computation is implemented, then interactive results are provided, but the system complexity increases

Engineering Contradiction:
Improvequery processing interactivityVSAvoidstreaming architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a streaming query engine as an intermediary layer between the traditional batch processing system and the user interface. This mediator translates standard SQL queries into streaming computations, managing the complexity of progressive execution internally while presenting a familiar query interface to users. The intermediary handles progress interval management, result aggregation, and coordination without requiring users to directly interact with the underlying streaming architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11494414B2Progressive query computation using streaming architectures
Publication Date: 2022.11.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11494414B2 patent drawing
  • US11494414B2 patent drawing
  • US11494414B2 patent drawing

AI summary

The described implementations relate to processing of electronic data. One implementation is manifest as a technique that can include obtaining a relational query that references one or more data items and associating progress intervals with the data items. The technique can also include converting the relational query into a corresponding streaming query, and providing the streaming query and the data items with the progress intervals to a stream engine that produces incremental results of the query. For example, the progress intervals can be based on row numbers of a relational database table. The progress intervals can be used to define event lifetimes of streaming events that are provided as inputs to the stream engine.