Stream Processing Framework Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current stream processing systems face inefficiencies in resource allocation and scalability, particularly in handling varying computational loads and long tail task sequences, leading to increased costs and latency due to the need for dedicated hardware and complex resource management.

Innovation Solution

The technology introduces a stream processing framework that utilizes concurrent and multiplexed processing schemes, allowing for dynamic resource allocation and shared connections across task sequences, enabling efficient handling of varying loads and reducing the need for dedicated hardware by leveraging common dependencies and automatically modifying container resources based on task sequence demands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated hardware is allocated to each task sequence to ensure reliable processing, then processing reliability is improved, but resource utilization efficiency deteriorates and costs increase

Engineering Contradiction:
Improveprocessing reliabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

Multiple task sequences are merged into a single container that shares common machine resources including JVM heap space, database connections, and other dependencies. This allows efficient resource utilization while maintaining isolation through container boundaries. The container acts as a merging point where multiple sequences can share resources without interfering with each other's reliability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The container is designed as a universal resource pool that can host multiple different task sequences with varying requirements. Each container provides universal access to shared resources such as database connections, configuration settings, and computational resources, eliminating the need for dedicated hardware for each sequence while maintaining reliability through proper resource management.

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

2Productivity

If more machine resources are allocated to handle increasing processing load, then throughput is improved, but resource allocation complexity and costs increase

Engineering Contradiction:
ImprovethroughputVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts resource allocation by allowing task sequences to be added or removed from containers based on processing load requirements. Containers can be automatically scaled up or down, and resources are dynamically reassigned to match actual throughput needs. This dynamic approach eliminates the complexity of static resource planning while maintaining optimal throughput.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The stream processing framework automatically manages resource allocation without requiring complex external orchestration. The system self-adjusts by monitoring load conditions and automatically provisioning or deprovisioning container resources. This self-service mechanism handles throughput scaling while keeping resource allocation complexity minimal.

Inventive Principle:
Principle #25Self-service

3Loss of energy

If container resources are dynamically adjusted to match task sequence demands, then resource efficiency is improved, but system complexity and management overhead increase

Engineering Contradiction:
Improveresource efficiencyVSAvoidsystem complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

Containers automatically adjust their resource allocation based on the actual demands of hosted task sequences. The system monitors resource usage patterns and self-adjusts container configurations without requiring complex external management. This self-service approach improves resource efficiency while keeping management overhead minimal.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms that monitor task sequence performance and resource consumption within containers. Based on this feedback, container resources are automatically adjusted to match actual demands. This closed-loop control improves resource efficiency while the automation of the feedback process prevents complexity from escalating.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11086687B2Managing resource allocation in a stream processing framework
Publication Date: 2021.08.10 SALESFORCE INC
  • US11086687B2 patent drawing
  • US11086687B2 patent drawing
  • US11086687B2 patent drawing

AI summary

The technology disclosed herein relates to method, system, and computer program product (computer-readable storage device) embodiments for managing resource allocation in a stream processing framework. An embodiment operates by configuring an allocation of a task sequence and machine resources to a container, and by running the task sequence, wherein the task sequence is configured to be run continuously as a plurality of units of work corresponding to the task sequence. Some embodiments further include changing the allocation responsive to a determination of an increase in data volume. A query may be taken from the task sequence and processed. Responsive to the query, a real-time result may be returned. Query processing may involve continuously applying a rule to the data stream, in real time or near real time. The rule may be set via a query language. Additionally, the data stream may be partitioned into batches for parallel processing.