Distributed Load Test Controller via Asynchronous Queue
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Reliability
If state sharing is implemented across distributed workers, then coordinated load testing is achieved, but accuracy of state sharing deteriorates at large scale
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.
Data Source
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.


