Production Database Testing via Data Silo and Context Filter

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In on-demand systems, testing code in a development environment separate from production can be inefficient due to resource competition and data fidelity issues, while testing in the production environment risks affecting live data and performance. Existing methods either waste resources or pose operational burdens with data access failures and rollback challenges.

Innovation Solution

Creating a data silo within the production environment by inserting new data and injecting a test context filter into queries, allowing tests to operate solely on new data without affecting live production data, thus isolating test transactions and maintaining data integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code is tested in a separate development environment, then production environment is protected from test side-effects, but resource efficiency decreases and data fidelity is compromised

Engineering Contradiction:
Improveproduction environment protectionVSAvoidresource efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the production database into isolated test contexts using unique identifiers. Test data is inserted with specific context IDs, and queries are filtered to operate only within those contexts. This creates logical segmentation within the physical production environment, allowing multiple concurrent test sequences to run independently without interfering with each other or with production operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a test context filter as an intermediary mechanism between test queries and production data. This filter acts as a mediator that allows test sequences to access the production database while preventing unauthorized access to production data by routing all test operations through context-specific filters that use unique test context identifiers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If code is tested in a separate development environment, then production data integrity is maintained, but data fidelity between test and production decreases

Engineering Contradiction:
Improveproduction data integrityVSAvoiddata fidelity
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent creates test data copies within the production database by inserting copies of production data structures with modified identifiers. These test copies maintain the same schema, relationships, and data characteristics as production data, allowing tests to run against realistic data while remaining distinguishable through context identifiers.

Inventive Principle:
Principle #26Copying

3Reliability

If tests are run against production data with rollback capability, then negative side-effects can be prevented, but operational burden increases and performance is affected

Engineering Contradiction:
Improvenegative side-effect preventionVSAvoidoperational burden
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent performs preliminary action by inserting test data with unique context identifiers before running tests. This pre-establishes isolated test contexts that automatically prevent interference with production data, eliminating the need for post-test rollback operations. The isolation is built-in from the start rather than requiring corrective action afterward.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8874593B2Testing data silo
Publication Date: 2014.10.28 SALESFORCE INC
  • US8874593B2 patent drawing
  • US8874593B2 patent drawing
  • US8874593B2 patent drawing

AI summary

In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for creating a data silo and testing with a data silo including, for example, initiating a test sequence against a production database within a host organization, wherein the test sequence specifies: (a) new data for insertion into the production database during the test sequence and (b) one or more queries for execution against the production database during the test sequence. Such a method further includes inserting the new data into the production database; recording one or more row IDs corresponding to the inserted new data; injecting a test context filter into the one or more queries based on the one or more row IDs; and executing the one or more queries against the production database.