Queue-Based Scalable Load Testing System

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing load testing methods for large-scale computing systems face challenges in managing synchronized and controlled loads across multiple hosts, often requiring complex architectures and high coupling between components, which can be expensive and prone to errors due to manual oversight and hardware failures.

Innovation Solution

A scalable load testing system using a queue decouples controllers and workers, allowing workers to self-balance load generation and enabling auto-scaling based on queue size and performance metrics, with a controller monitoring and adjusting the number of workers to maintain target loads without constant manual intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single-host load generator is used, then the system is simple to manage, but it cannot generate sufficient load to provide an adequate test for large-scale systems

Engineering Contradiction:
Improveload generation capabilityVSAvoidnumber of hosts
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The load generation system is segmented into multiple independent worker hosts that can operate concurrently. Each worker host runs an independent load generation process, allowing the system to scale load generation capability by simply adding more worker hosts rather than upgrading a single host.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple hosts run load generators concurrently, then sufficient load can be generated, but managing the individual load generators requires constant manual oversight and re-adjustment

Engineering Contradiction:
Improveload generation capabilityVSAvoidmanual oversight requirement
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

Each worker host is designed to self-regulate its load generation. The worker process automatically adjusts its own load generation rate based on feedback from the server, eliminating the need for manual oversight. Workers independently monitor their performance and self-adjust without requiring constant human intervention.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms where workers receive information about server response times and load conditions, and automatically adjust their load generation accordingly. This closed-loop control allows workers to self-regulate and maintain optimal testing conditions without manual intervention.

Inventive Principle:
Principle #23Feedback

3Reliability

If a master/slave architecture is used to manage multiple load generators, then synchronized load can be achieved, but the system requires high coupling between components which is expensive and complex

Engineering Contradiction:
Improveload synchronizationVSAvoidcoupling between components
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The master/slave control architecture is extracted and replaced with a peer-to-peer worker model. Each worker host operates independently as a peer, eliminating the need for a centralized master process. Workers communicate only when necessary through the server, significantly reducing coupling complexity while maintaining load synchronization through distributed coordination.

Inventive Principle:
Principle #2Taking out (Extraction)

4Stability of the object's composition

If individual load generators are configured with the same hardware and software, then consistency is maintained, but there is no guarantee that every individual load generator will provide the same maximum load

Engineering Contradiction:
Improveconfiguration consistencyVSAvoidload generation uniformity
Core Design Contradiction:
Stability of the object's compositionVSManufacturing precision

Solution Approach 1:

The system transitions from static, fixed load generation configurations to dynamic, adaptive load generation. Each worker process dynamically adjusts its load generation rate based on real-time feedback from the server, ensuring uniform overall load distribution even when individual workers have varying capabilities. This dynamic adjustment compensates for hardware and software variations.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9396039B1Scalable load testing using a queue
Publication Date: 2016.07.19 AMAZON TECH INC
  • US9396039B1 patent drawing
  • US9396039B1 patent drawing
  • US9396039B1 patent drawing

AI summary

Methods and systems for load generation for scalable load testing are disclosed. A plurality of job descriptions are generated based on a load step description. The load step description specifies a total transaction frequency or a total number of concurrent connections for a load test of a service over a period of time. The job descriptions specify subdivisions of the total transaction frequency or the total number of concurrent connections and subdivisions of the period of time. The job descriptions are placed in a job queue. A plurality of worker hosts remove the job descriptions from the job queue and concurrently execute local jobs based on the job descriptions.