Message Processing Dispatch Function for Dynamic Resource Scaling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing resource service providers face challenges in efficiently scaling resources to match fluctuating network traffic, leading to increased costs due to difficulty in predicting when to reduce or increase resource allocation.

Innovation Solution

A message processing system that uses a dispatch function to query a message queue, determine the number of message consumption functions needed based on traffic volume, and invoke them at overlapping intervals to adjust resource allocation dynamically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If additional resources are provisioned to handle increased network traffic, then the capability to process messages is improved, but the cost of maintaining resources during low traffic periods increases

Engineering Contradiction:
Improvemessage processing capabilityVSAvoidcost of maintaining resources
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically adjusts the number of active message processing resources based on real-time network traffic conditions. When traffic increases, additional resources are provisioned; when traffic decreases, resources are de-provisioned. This dynamic adaptation resolves the contradiction by ensuring high processing capability during peak times while minimizing resource maintenance costs during low-traffic periods.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism that continuously monitors network traffic conditions and automatically triggers resource provisioning or de-provisioning actions. This closed-loop control ensures that resource allocation responds to actual demand, preventing both over-provisioning (wasting resources) and under-provisioning (insufficient processing capability), thereby resolving the cost-capability contradiction.

Inventive Principle:
Principle #23Feedback

2Loss of energy

If resources are reduced during low network traffic, then the cost of maintaining resources is reduced, but the ability to respond to sudden traffic increases is worsened

Engineering Contradiction:
Improvecost of maintaining resourcesVSAvoidresponse time to traffic increase
Core Design Contradiction:
Loss of energyVSSpeed

Solution Approach 1:

The system maintains a pool of standby or pre-configured resources that can be rapidly activated when traffic increases are detected. This preliminary preparation ensures that when sudden traffic spikes occur, resources can be brought online quickly without significant delay, thus maintaining fast response time while still allowing cost reduction during low-traffic periods through selective de-provisioning of non-standby resources.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the number of message consumption functions is increased, then the processing speed of messages is improved, but the complexity of managing resources is increased

Engineering Contradiction:
Improvemessage processing speedVSAvoidresource management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The message consumption functions are designed to be self-managing, with automatic provisioning, configuration, and de-provisioning capabilities. The system autonomously monitors its own performance and traffic conditions, triggering appropriate resource adjustments without requiring complex external management. This self-service approach enables high processing speed through multiple concurrent functions while minimizing the complexity burden on operators.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11588744B1Automatic scaling of resources for message processing
Publication Date: 2023.02.21 AMAZON TECH INC
  • US11588744B1 patent drawing
  • US11588744B1 patent drawing
  • US11588744B1 patent drawing

AI summary

A triggering system of a message processing service invokes a dispatch function to execute code to determine a set of message consumption functions to launch in order to process a set of messages from a queue. The dispatch function determines, based at least in part on the number of messages in the queue, the number of message consumption functions of the set that are to process these messages. The dispatch function invokes, based on the determination, the set of message consumption functions to process the set of messages from the queue.