Self-Adapting Client Worker Scaling for Message Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale systems face inefficiencies in managing worker resources for processing queues due to unpredictable data flows, leading to either overprovisioning and unnecessary resource usage or increased latency from storing items for later processing.

Innovation Solution

A self-adapting client dynamically scales the number of workers based on message flow, adjusting the number of workers to match actual workload without external control, reducing network traffic and processing load by activating and deactivating workers in response to message availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the number of workers is oversubscribed to handle unpredictable data flows, then system reliability is improved, but resource usage increases and customers pay for unused resources

Engineering Contradiction:
Improvesystem reliabilityVSAvoidresource usage
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system dynamically adjusts the number of active workers based on real-time queue depth and message flow characteristics. Workers are activated when messages are available and deactivated when the queue is empty, transforming the static worker allocation into a dynamic response mechanism that matches actual workload demands.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback loops where workers monitor queue depth and message flow patterns, and this information feeds back into the worker management logic to adjust the number of active workers. This closed-loop control ensures reliability by maintaining sufficient workers during high load while reducing resource usage during low load periods.

Inventive Principle:
Principle #23Feedback

2Loss of energy

If the flow of data is smoothed out by storing extra items in a queue for later processing, then resource usage is reduced, but latency increases because items sit in a queue

Engineering Contradiction:
Improveresource usageVSAvoidlatency
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

Instead of statically smoothing data flow by keeping items in queue, the system dynamically activates workers in response to actual message availability. This dynamic approach minimizes queue wait time by ensuring workers are immediately available when messages arrive, while still reducing resource usage by deactivating workers when the queue is empty.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system enables self-service by having workers autonomously monitor the queue and activate themselves when messages are available, rather than requiring external scheduling or static allocation. This self-service mechanism reduces latency by eliminating the delay between message arrival and worker activation.

Inventive Principle:
Principle #25Self-service

3Speed

If workers continuously poll the messaging service to quickly respond to messages, then response time is improved, but network traffic and processing load increase during low message traffic

Engineering Contradiction:
Improveresponse timeVSAvoidnetwork traffic
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system dynamically adjusts polling behavior based on the number of active workers and queue state. When workers are deactivated, polling stops to reduce network traffic. When workers are activated, they begin polling to ensure quick response to messages. This dynamic adjustment resolves the contradiction by adapting polling intensity to actual workload conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Workers autonomously manage their own polling behavior based on their active/inactive state and observed queue conditions. This self-service approach allows the system to maintain quick response times when needed while automatically reducing network traffic during low message traffic periods without requiring external control.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11212338B1Managed scaling of a processing service
Publication Date: 2021.12.28 AMAZON TECH INC
  • US11212338B1 patent drawing
  • US11212338B1 patent drawing
  • US11212338B1 patent drawing

AI summary

A system implements managed scaling of a processing service in response to message traffic. Producers produce messages or other data and the messages are stored in a queue or message system. On behalf of consumers of the messages, workers of a client of the queue poll the queue or message service to obtain the messages. For example, a primary worker of the client polls the queue for messages and upon receiving a message, activates a secondary worker from a pool of secondary workers to start polling the queue for message. Now both workers are obtaining messages from the queue, and both workers may activate other secondary workers, exponentially scaling the message processing service in embodiments. When a secondary worker receives an empty polling response, the secondary deactivates back to the pool. The primary thread does not deactivate, even when empty polling responses are received.