Dataflow Controller Segmentation for Stream Processing Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale cloud and Internet service providers face challenges in managing high variability and uncertainties in event streams, leading to resource underutilization and instability in stream processing systems due to inevitable failures and hardware heterogeneity.

Innovation Solution

Implementing a dataflow controller technology where dedicated controllers manage individual dataflow execution graphs, with a higher-level controller overseeing multiple dataflow controllers, and using a pool of pre-instantiated controllers to rapidly replace failed ones, ensuring robustness and resilience.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single shared controller manages multiple dataflow execution graphs, then device complexity is reduced, but reliability deteriorates because a single controller failure can impact multiple execution graphs

Engineering Contradiction:
Improvecontroller structureVSAvoidsystem reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The controller is segmented into multiple dedicated controllers, where each controller is assigned to manage a specific dataflow execution graph. This segmentation isolates failure domains so that a controller failure impacts only its assigned execution graph rather than multiple graphs, thereby improving reliability while maintaining manageable complexity through clear assignment boundaries.

Inventive Principle:
Principle #1Segmentation

2Reliability

If dedicated controllers are assigned to each dataflow execution graph, then reliability is improved by isolating failure impact, but device complexity increases due to multiple controllers

Engineering Contradiction:
Improvecontroller failure isolationVSAvoidcontroller quantity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Each dedicated controller is designed with universal functionality to manage any dataflow execution graph assigned to it. The controllers implement standardized interfaces and control logic that can handle diverse execution graphs, allowing the system to scale by adding identical multi-functional controller units rather than requiring specialized controllers for each graph, thus managing complexity through uniformity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If resources are provisioned with safety factors to handle variability, then reliability is improved, but resource utilization deteriorates due to idle resources

Engineering Contradiction:
Improveperformance stabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically assigns and reassigns dedicated controllers to different dataflow execution graphs based on runtime conditions, workload characteristics, and controller availability. This dynamic allocation allows the system to adapt to temporal and spatial variability in event streams, maintaining reliable performance through appropriate safety factors while optimizing resource utilization by matching controller resources to actual demand rather than static over-provisioning.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10908922B2Dataflow controller technology for dataflow execution graph
Publication Date: 2021.02.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10908922B2 patent drawing
  • US10908922B2 patent drawing
  • US10908922B2 patent drawing

AI summary

A dataflow controller technology. A dataflow execution graph (such as a directed acyclic graph) receives or is to receive one or more data streams for processing. The control of the dataflow execution graph is performed by a set of one or more dataflow controllers that are dedicated to that dataflow execution graph. Each dataflow execution graph is instantiated and assigned to the dataflow execution graph such that the assignment results in the dataflow controller executing dataflow control functions for that dataflow execution graph. By dedicating controller(s) to only one dataflow execution graph, the risk of failure of the controller is bound to a single dataflow execution graph.