Decoupled Load Generation Architecture for Accurate Remote Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for testing systems under load are inefficient due to resource constraints, geographic location issues, and language compatibility problems, leading to skewed results and increased complexity in testing systems designed to handle large loads.

Innovation Solution

A three-tiered architecture with a test tier, a generic load generator tier, and an application-specific load generator tier, utilizing a load generator servlet that communicates with load drivers to apply loads in a programming language-agnostic manner, allowing for flexible and accurate testing from remote locations while minimizing resource constraints and latency issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a multi-threaded solution is used where some threads apply load and some apply tests, then both load generation and testing can be performed, but the resource needs for load generation may skew test results

Engineering Contradiction:
Improvetesting efficiencyVSAvoidtest result accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system is divided into separate functional components: load generation functions are separated from test execution functions. The load generator can apply load independently while the test executor runs tests, allowing resource-intensive load generation to be isolated from the testing process to prevent skewing of test results.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A load generator interface acts as an intermediary between the test executor and the actual load application. This interface allows the test executor to communicate test requirements without directly managing load generation resources, enabling independent optimization of both testing and load generation processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the test machine is located in a geographically different location from the server, then remote testing can be performed, but latency introduced by distance may affect latency results

Engineering Contradiction:
Improvetesting flexibilityVSAvoidlatency measurement accuracy
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The load generator serves as a geographic intermediary deployed closer to the server being tested. It receives test parameters from the remote test executor and applies load locally near the server, eliminating the geographic latency issue while maintaining remote testing flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The load generator is deployed in the same geographic location as the server (or closer to it), providing local load application. This ensures that latency measurements reflect actual system performance rather than being contaminated by remote network latency, while the test executor can remain anywhere with network access.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If different engineers compose tests using different programming languages, then each engineer can use their preferred language, but the complexity of interfacing with the load generator increases

Engineering Contradiction:
Improvelanguage flexibilityVSAvoidinterface complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The load generator interface is designed to be language-agnostic and protocol-agnostic, accepting test specifications from multiple programming languages through a universal interface. This allows engineers to use their preferred languages (Java, C++, Ruby, etc.) while the load generator handles the diversity through a single standardized interface layer.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Productivity

If a machine with insufficient hardware resources is used for testing, then testing can be performed with available resources, but test results may be skewed by resource constraints

Engineering Contradiction:
Improvetesting availabilityVSAvoidtest result validity
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system separates the resource-intensive load generation functions from the test execution functions. The test executor can run on resource-constrained machines, while the load generator (which requires significant CPU, memory, and I/O resources) runs on a separate, adequately provisioned machine. This segmentation allows testing availability on modest hardware while ensuring test validity through proper resource provisioning for load generation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11720089B2Decoupled load generation architecture
Publication Date: 2023.08.08 AMAZON TECH INC
  • US11720089B2 patent drawing
  • US11720089B2 patent drawing
  • US11720089B2 patent drawing

AI summary

Systems and processes are described for establishing and using a secure channel. A shared secret may be used for authentication of session initiation messages as well as for generation of a private/public key pair for the session. A number of ways of agreeing on the shared secret are described and include pre-sharing the keys, reliance on a key management system, or via a token mechanism that uses a third entity such as a hub to manage authentication, for example. In some instances, the third party may also perform endpoint selection (e.g., load balancing) by providing a particular endpoint along with the token.