Transaction Validator Emulator for Database Testing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If the testing framework tests the entire database software, then comprehensive coverage is achieved, but the computational cost is excessively high
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.
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.
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
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.
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.
Data Source
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.


