Runtime Grouping of Streaming Processing Elements

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In streaming computing, conventional resource managers face challenges in allocating resources efficiently due to constant usage and lack of knowledge about stream processing topology, leading to potential breaks in processing graphs and difficulties in adding or removing machines without introducing latency.

Innovation Solution

A method that dynamically groups and un-groups processing operators and elements, monitoring resource utilization to identify candidates for parallelization and fusion, adjusting these configurations at runtime to optimize resource allocation without user intervention, using techniques like graph transforms and tuple flow rate monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional resource managers are used to allocate machines in streaming computing, then resource allocation can be performed, but the system cannot safely remove or add machines without introducing breaks in the processing graph or latency

Engineering Contradiction:
Improvedynamic resource allocationVSAvoidprocessing graph continuity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system dynamically adjusts the grouping and un-grouping of processing operators and elements at runtime based on monitored resource utilization metrics. This allows the processing graph to adapt to changing resource availability while maintaining continuity, as the system can reconfigure processing elements without breaking the graph by using dynamic threshold-based decisions for when to group or un-group operators.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system continuously monitors distributed processing elements resource utilization and uses this feedback to identify candidate operators and processing elements for parallelization or fusion. This feedback loop enables the system to make informed decisions about resource allocation and reconfiguration, ensuring that changes are made only when resource utilization thresholds are exceeded, thereby maintaining processing graph integrity.

Inventive Principle:
Principle #23Feedback

2Productivity

If processing elements are grouped to improve resource utilization, then efficiency increases, but the system becomes less flexible in adapting to changing resource availability

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidflexibility to resource changes
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic grouping and un-grouping of processing elements based on real-time resource utilization monitoring. When resource utilization exceeds an upper threshold, the system identifies candidates for un-grouping to improve flexibility. When utilization falls below a lower threshold, the system groups candidates to improve efficiency. This dynamic approach allows the system to optimize both productivity and adaptability based on current resource conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of processing elements by dynamically adjusting their grouping state based on resource utilization thresholds. This parameter change enables the system to transition between different operational modes (grouped for efficiency, un-grouped for flexibility) without requiring fundamental architectural changes, thus resolving the contradiction between productivity and adaptability.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the system monitors and dynamically adjusts processing elements at runtime, then resource allocation is optimized, but system complexity increases

Engineering Contradiction:
Improveresource allocation optimizationVSAvoidsystem management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs self-service by automatically monitoring its own resource utilization and making decisions about grouping and un-grouping processing elements without external intervention. The resource manager autonomously identifies candidate operators and processing elements, evaluates them against thresholds, and executes parallelization or fusion operations, thereby optimizing resource allocation while managing complexity through automation rather than manual control.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system introduces a resource manager as an intermediary layer between the processing elements and the external environment. This intermediary monitors resource utilization, makes decisions about grouping and un-grouping, and manages the complexity of runtime adjustments. By centralizing control in this intermediary, the system can optimize resource allocation while isolating the complexity of dynamic management from the individual processing elements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10025637B2System and method for runtime grouping of processing elements in streaming applications
Publication Date: 2018.07.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10025637B2 patent drawing
  • US10025637B2 patent drawing
  • US10025637B2 patent drawing

AI summary

A method, computer program product, and computer system for dynamically grouping and un-grouping processing operators and processing elements used by a streaming application. A distributed processing elements utilization of resources may be monitored to identify candidate operators and candidate processing elements for at least one of parallelization and fusion. At runtime, via at least one of parallelization and fusion, the grouping and un-grouping of the identified candidate operators and candidate processing elements may be dynamically adjusted.