Caching Mechanism for Software Testing Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing farms face inefficiencies due to bottlenecks in accessing and distributing large volumes of test ingredients, which can diminish throughput even with increased farm machine numbers, especially when relying on centralized data stores.

Innovation Solution

Implementing a caching mechanism within farm machines that utilize a software repository to store and update test ingredients based on version attributes, allowing for selective synchronization and copying of test versions, thereby reducing the need for frequent downloads from a central share.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If test ingredients are accessed directly from a centralized share, then all farm machines can access the latest versions, but the access time and network load increase significantly

Engineering Contradiction:
Improveaccess to latest test ingredientsVSAvoiddownload time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a caching mechanism that pre-loads and stores test ingredients locally on each farm machine before they are needed for testing. This preliminary action allows machines to access previously downloaded ingredients immediately without network delays, while still maintaining the ability to update from the centralized share when changes occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a local cache as an intermediary layer between the centralized share and the farm machines. This cache stores copies of test ingredients locally, acting as a mediator that provides fast local access while periodically synchronizing with the centralized source, thereby reducing network load and access time.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If test ingredients are copied to local storage on each farm machine, then access speed improves, but the initial copying time and storage requirements increase

Engineering Contradiction:
Improveaccess speedVSAvoidcopying time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system performs preliminary copying of test ingredients to local storage on farm machines before testing operations begin. This advance preparation ensures that when testing starts, all necessary ingredients are already available locally, eliminating access delays during actual testing workflows.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent utilizes copying mechanisms to create local replicas of test ingredients from the centralized share. By maintaining local copies, the system enables fast access without requiring continuous network connectivity, while the copying operation is optimized to occur during idle periods or in parallel with other operations.

Inventive Principle:
Principle #26Copying

3Productivity

If a testing farm uses more farm machines to increase throughput, then testing capacity increases, but the network bottleneck at the centralized share worsens

Engineering Contradiction:
Improvetesting throughputVSAvoidnetwork load
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments the centralized data access model by distributing local caches across multiple farm machines. Instead of all machines competing for access to a single centralized share, each machine maintains its own local segment of the test ingredients, eliminating the network bottleneck and enabling linear scaling of testing throughput with additional machines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional centralized access model to a multi-dimensional distributed caching architecture. By adding the local cache dimension at each machine, the system enables parallel access paths that reduce network contention and allow throughput to scale with the number of machines without proportionally increasing network load.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS8219977B1Using a software repository to increase the speed of software testing
Publication Date: 2012.07.10 XILINX INC
  • US8219977B1 patent drawing
  • US8219977B1 patent drawing
  • US8219977B1 patent drawing

AI summary

A method of testing software can include maintaining a cache within at least one of a plurality of farm machines of a testing farm. Each cache can include at least one version of test ingredients. The method can also include receiving, within at least one selected farm machine, a request to perform a test involving a test version of the test ingredients and comparing the test version of the test ingredients with versions of the test ingredients stored within the cache of the selected farm machine. The method can also include selectively updating a version of the test ingredients stored within the cache of the selected farm machine according to the comparison.