Distributed Load Test Controller via Asynchronous Queue

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed load test systems face challenges in scaling to handle large-scale systems effectively, particularly due to reliance on synchronous communication, which becomes inefficient when dealing with numerous hosts or nodes, and struggle to accurately share state across large fleets, leading to issues in managing and regulating test loads.

Innovation Solution

A distributed load test system that employs asynchronous communication through a control channel and a feedback channel, allowing a load test controller to generate workloads for a fleet of workers without direct communication, using a shared resource like a queue or storage service, and modulating load based on feedback metrics from a monitoring service to adjust the rate and quantity of jobs, enabling loose coordination and improved scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous communication is used in distributed load test systems, then direct control and coordination between controller and workers is achieved, but scalability deteriorates when dealing with numerous hosts or nodes

Engineering Contradiction:
Improvecontrol coordinationVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a shared resource (queue or storage service) as an intermediary between the load test controller and worker nodes. The controller publishes load instructions to the shared resource without direct communication, and workers consume instructions from it independently. This mediator enables loose coordination while allowing the system to scale to numerous hosts without the overhead of synchronous communication protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If direct communication between controller and workers is maintained, then real-time control is achieved, but system complexity increases when scaling to large fleets

Engineering Contradiction:
Improvecontrol response timeVSAvoidcommunication infrastructure
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent extracts the communication burden from the controller-worker relationship by removing direct communication channels. The controller only interacts with the shared resource to publish instructions, and workers independently consume and execute them. This extraction simplifies the communication infrastructure while maintaining control effectiveness, as the shared resource handles all coordination without requiring complex point-to-point communication protocols.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If state sharing is implemented across distributed workers, then coordinated load testing is achieved, but accuracy of state sharing deteriorates at large scale

Engineering Contradiction:
Improveload test coordinationVSAvoidstate sharing accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent uses a shared resource that acts as a centralized copy of the load test state, accessible to all workers. Instead of workers attempting to share and synchronize their individual state (which becomes inaccurate at scale), they all read from the same authoritative copy maintained by the controller through the shared resource. This copying approach ensures all workers operate from the same state information without the complexity and inaccuracies of distributed state synchronization.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11301362B1Control system for distributed load generation
Publication Date: 2022.04.12 AMAZON TECH INC
  • US11301362B1 patent drawing
  • US11301362B1 patent drawing
  • US11301362B1 patent drawing

AI summary

A test system includes a controller that creates test jobs to simulate a load for testing a target system or service. The jobs specify test data from a data store. The controller adds the test jobs to a job queue at a rate. Workers access jobs from the job queue and request data from the data store as specified in each job and send the request data to the service. Approximations (e.g., metric values indicating performance of the worker host resources, or performance of the system under test or performance of resources that implement the system under test, other feedback, etc.) of actual system characteristics such as the actual number of workers are obtained. Based on the metric values, the controller modulates various characteristics of the load generation system, such as a rate at which jobs are added to the job queue or the number of workers processing jobs.