Differential Dataflow for Incremental Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data-parallel programs are inefficient for incremental updates and data streaming due to batch-oriented and loop-free processing, leading to redundant computations and inability to handle partially ordered changes effectively.

Innovation Solution

The implementation of a differential dataflow model that performs computations on differences in data collections using a lattice structure, allowing for incremental updates, nested fixed-point iterations, and prioritized execution by indexing and processing changes in multiple dimensions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If batch-oriented processing is used, then simplicity of implementation is maintained, but computational efficiency deteriorates due to redundant reprocessing of entire data collections

Engineering Contradiction:
Improvesimplicity of implementationVSAvoidcomputational efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments the data processing task by dividing the data collection into chunks and processing only the incremental changes rather than reprocessing entire collections. This is achieved through differential dataflow that tracks and processes only the differences between current and previous states, thereby improving computational efficiency while maintaining implementation simplicity through the use of standardized operators.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by maintaining state information from previous computations and using it to identify only the necessary incremental updates. The differential dataflow model pre-computes and caches previous states, allowing the system to efficiently determine what changes need to be processed without reprocessing unchanged data.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If loop-free data-parallel programs are used, then parallel execution simplicity is maintained, but ability to perform iterative computations deteriorates

Engineering Contradiction:
Improveparallel execution simplicityVSAvoidability to perform iterative computations
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements nested fixed-point iterations by allowing dataflow graphs to contain cyclic dependencies where operators can reference their own outputs from previous iterations. This nested structure enables iterative computations within the dataflow framework, with each iteration building upon the previous state while maintaining the declarative data-parallel programming model.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The system introduces dynamics by allowing the dataflow graph to adapt and evolve through iterative computations. Operators can dynamically adjust their behavior based on convergence criteria and previous iteration results, enabling the system to perform complex iterative computations while preserving parallel execution capabilities through the dataflow abstraction.

Inventive Principle:
Principle #15Dynamics

3Reliability

If conventional dataflow processing is used, then handling of static data is maintained, but efficiency in processing incremental changes deteriorates

Engineering Contradiction:
Improvehandling of data processingVSAvoidefficiency in processing incremental changes
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the necessary incremental changes from the data collection by computing differential updates. Instead of processing entire data collections, the system extracts and processes only the differences between current and previous states, significantly improving efficiency for incremental updates while maintaining reliable data processing through the use of differential operators.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system utilizes parameter changes by tracking changes in data state parameters over time. The differential dataflow model monitors parameter changes in the data collection and triggers computations only when relevant parameters change, thereby improving efficiency for incremental processing while ensuring reliable handling of data updates.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If reprocessing of entire data collections is performed, then completeness of computation is maintained, but loss of time increases due to redundant computations

Engineering Contradiction:
Improvecompleteness of computationVSAvoidtime for redundant computations
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by processing only the necessary subset of data that has changed since the last computation. The differential dataflow model identifies and processes only the minimal required updates rather than performing excessive reprocessing of entire collections, thereby reducing time loss while maintaining computational completeness for the changed portions.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system discards redundant computations by identifying and eliminating unnecessary reprocessing of unchanged data. The differential model recovers previous computation results and reuses them where applicable, discarding only the minimal necessary computations for changed data portions, thus reducing time loss while maintaining computational completeness.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS9165035B2Differential dataflow
Publication Date: 2015.10.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9165035B2 patent drawing
  • US9165035B2 patent drawing
  • US9165035B2 patent drawing

AI summary

The techniques discussed herein efficiently perform data-parallel computations on collections of data by implementing a differential dataflow model that performs computations on differences in the collections of data. The techniques discussed herein describe defined operators for use in a data-parallel program that performs the computations on the determined differences between the collections of data by creating a lattice and indexing the differences in the collection of data according to the lattice.