Deterministic Container Model for Distributed Application Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex and distributed computing environments like data centers, achieving determinism and rigorous verification of software and hardware is challenging due to vast and diverse computing resources, making it difficult to test and characterize performance metrics, especially with the presence of non-deterministic conditions and vast program code flow variations.

Innovation Solution

A deterministic container model is introduced to simplify the detection and handling of non-determinism, where applications are divided into independent execution spaces, and relationships between these spaces are defined to enforce determinism. Additionally, virtualized program execution is used to prune redundant code flow variations and message passing, with symbolic evaluation to generate test inputs and collapse redundant message exchanges.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If distributed computing environments use vast and diverse computing resources to improve processing power and scalability, then productivity and adaptability are improved, but device complexity and difficulty of detecting and measuring increase

Engineering Contradiction:
Improveprocessing powerVSAvoidenvironment complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the distributed application into multiple virtualized execution environments, each isolated and independently verifiable. This segmentation allows the complex distributed system to be analyzed in manageable pieces while maintaining the overall system's productivity and scalability benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary verification layer that sits between the diverse computing resources and the application logic. This intermediary abstracts the complexity of the underlying hardware and software variations, enabling rigorous verification without sacrificing the benefits of diverse resource utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If distributed applications are tested exhaustively to improve reliability, then measurement precision is improved, but loss of time and productivity decrease

Engineering Contradiction:
Improveverification accuracyVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary symbolic evaluation and constraint generation before actual execution testing. By pre-analyzing the program logic and generating test constraints upfront, the system achieves thorough verification without requiring exhaustive runtime testing, thus reducing time loss while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates virtualized copies of execution environments that replicate the behavior of the distributed application. These copies can be tested rigorously without affecting the production system, enabling comprehensive verification while avoiding the time costs of testing on actual distributed infrastructure.

Inventive Principle:
Principle #26Copying

3Ease of operation

If virtualization is used to improve ease of operation and automation, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improveverification automationVSAvoidsystem architecture
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements a universal verification framework that works across multiple virtualized execution environments and distributed platforms. This universal approach automates verification processes without requiring environment-specific configurations, improving ease of operation while managing architectural complexity through standardization.

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

Data Source

PatentUS9146829B1Analysis and verification of distributed applications
Publication Date: 2015.09.29 AMAZON TECH INC
  • US9146829B1 patent drawing
  • US9146829B1 patent drawing
  • US9146829B1 patent drawing

AI summary

Systems and methods are described for analyzing and verifying distributed applications. In one embodiment, an application program is parsed and a set of inputs is determined. The application program is executed as one or more independently executable components. During execution, non-deterministic events are modified in order to effectuate a deterministic result. Redundant portions of the set of inputs are aggregated, and the set of inputs is iteratively updated.