Stream Service Placement Optimization in Real-Time Computing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database systems are not well-suited for real-time processing and analyzing large volumes of streaming data, often leading to inefficiencies in storing, indexing, and analyzing data in real-time due to resource constraints and dynamic environmental changes.

Innovation Solution

A method and system for stream computing that involves receiving tuples to be processed by multiple processing elements on compute nodes, where stream operators are connected to determine overhead and performance criteria, allowing for the movement of services within an operator graph to optimize performance by ending underperforming services and instantiating them at more suitable locations, thereby maintaining performance goals.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If database systems store and index streaming data before querying, then data can be accessed and manipulated, but real-time processing efficiency deteriorates

Engineering Contradiction:
Improvedata accessibilityVSAvoidreal-time processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the monolithic database architecture into distributed stream computing components (stream operators, processing elements, compute nodes) that process data in real-time as it flows through the system, eliminating the bottleneck of centralized storage-and-then-query processing

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adapts to changing data flow conditions by automatically monitoring performance metrics and relocating stream services between compute nodes based on current system state, enabling real-time optimization without manual intervention

Inventive Principle:
Principle #15Dynamics

2Productivity

If stream services are placed at specific locations in the operator graph, then processing efficiency improves, but performance deteriorates when environmental conditions change

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidperformance adaptability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system continuously monitors performance metrics (throughput, latency, resource utilization) from stream operators and uses this feedback to automatically determine when and where to relocate stream services, creating a closed-loop control system that adapts to changing conditions

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the deployment parameters (location, compute node assignment) of stream services based on monitored performance metrics and environmental conditions, optimizing the system for current operational requirements

Inventive Principle:
Principle #35Parameter changes

3Productivity

If stream services are relocated to optimize performance, then processing speed improves, but system complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidservice management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements self-service through automated service relocation, where the stream computing framework autonomously monitors performance, evaluates relocation opportunities, and executes service migrations without human intervention, managing complexity internally while presenting a simplified interface

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10037356B2Placement of services in stream computing applications
Publication Date: 2018.07.31 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10037356B2 patent drawing
  • US10037356B2 patent drawing
  • US10037356B2 patent drawing

AI summary

A stream of tuples to be processed by a plurality processing elements executing on two or more compute nodes is received. Each compute node stores one or more of the processing elements having one or more stream operators. It is determined whether an overhead parameter associated with a first streams service located at a first stream operator is outside of a first overhead criterion. The first streams service is ended at the first stream operator and a second streams service is instantiated at a second stream operator when the overhead parameter associated with the first streams service is outside of the first overhead criterion. The second stream operator is different from the first stream operator. The method may include determining whether the first streams service samples a first data attribute of tuples or measures performance.