Transaction Validator Emulator for Database Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Testing complex database transactions and features, such as Full Text Search and Read-Your-Writes, is computationally intensive and inefficient with current integer map representations, making it difficult to validate correctness and extend the testing framework to cover new features.

Innovation Solution

A transactor emulator is used to generate and process equivalent transactions from a log, allowing for the identification of bugs and errors in the transactor or database system by comparing results with the actual transactor, including schema changes and system faults injection for thorough testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If the database software uses itself as validator for testing transactions, then the testing process is simple to implement, but the validation is unreliable as the database would most likely agree with itself even if the result is incorrect

Engineering Contradiction:
Improveease of testing implementationVSAvoidvalidation correctness
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent introduces an intermediary validator component that is independent from the database being tested. This validator receives transaction requests and results, applies validation rules, and determines correctness without being influenced by the database under test. The intermediary nature ensures unbiased validation while maintaining testing simplicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy of the transaction processing logic within the validator, allowing it to independently verify results. By replicating essential processing rules in the validator, the system can check correctness without relying on the database's own potentially biased evaluation.

Inventive Principle:
Principle #26Copying

2Reliability

If the testing framework tests the entire database software, then comprehensive coverage is achieved, but the computational cost is excessively high

Engineering Contradiction:
Improvetesting coverageVSAvoidcomputational resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent divides the database system into separable components for testing: transaction requests, processing logic, and validation rules. The validator tests specific components independently rather than requiring full database execution, reducing computational overhead while maintaining coverage of critical transaction processing paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The validator performs partial validation by checking only essential transaction properties and outcomes rather than re-executing entire transaction workflows. This selective validation approach achieves sufficient coverage for correctness verification without the excessive computational cost of complete re-processing.

Inventive Principle:
Principle #16Partial or excessive action

3Device complexity

If the current integer map representation is used for transaction validation, then the validation model is simple, but it cannot verify complex features such as Full Text Search, Read-Your-Writes, or Queues

Engineering Contradiction:
Improvevalidation model simplicityVSAvoidfeature coverage
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic validation model that can adapt its representation based on the feature being tested. For simple transactions, it uses basic data structures, but for complex features like Full Text Search or Queues, it dynamically employs appropriate data structures and validation rules matching the feature's requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The validation model changes its parameters and internal representation based on the transaction type. It switches between different data structure representations (e.g., from simple integer maps to more complex structures) depending on whether validating basic transactions, full text search, read-your-writes, or queue operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240264925A1Transaction Validator
Publication Date: 2024.08.08 GOOGLE LLC
  • US20240264925A1 patent drawing
  • US20240264925A1 patent drawing
  • US20240264925A1 patent drawing

AI summary

Randomized testing can be used to explore a set of possible transactions, schemas, and system states, including partionings, which can exist in a distributed database. The tests can be complementary to other system failure, performance, and version compatibility tests. Randomly generated transactions can be computed or evaluated at a transactor and compared to results derived from a transactor emulator.