Database Virtualization via Bytecode Instrumentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern software systems face challenges in virtualizing databases due to complex interactions, high quantities of APIs and database calls, and difficulties in recording transactions across multi-threaded, multi-user, and multi-virtual machine environments, especially when dealing with encrypted or proprietary traffic, or when parts of the system do not directly generate or receive network traffic.

Innovation Solution

An agent-based approach using bytecode instrumentation techniques to record and simulate database interactions, intercepting transactions within the application or virtual machine, and generating synthetic responses based on recorded data to create a virtualized database environment, allowing software components to function as if interacting with a live database even when it is offline or controlled by a third party.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional database virtualization methods are used, then database access can be virtualized, but the system becomes incompatible with encrypted or proprietary traffic and cannot handle complex multi-threaded, multi-user, and multi-virtual machine environments

Engineering Contradiction:
Improvecompatibility with encrypted or proprietary trafficVSAvoidcomplexity of recording transactions across multi-threaded, multi-user, and multi-virtual machine environments
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary component that sits between the software component and the database, capturing and virtualizing database calls without requiring direct access to the actual database. This intermediary approach enables the system to handle encrypted or proprietary traffic by intercepting calls at the application level rather than requiring network-level access, thereby resolving the contradiction between adaptability and complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional mechanical/network-based database access methods with a software-based virtualization layer that uses bytecode instrumentation and dynamic code generation. This substitution allows the system to virtualize database interactions in complex multi-threaded, multi-user, and multi-virtual machine environments without relying on direct network traffic or proprietary protocols, thus improving adaptability while managing complexity through software abstractions.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If a live database is required for software component testing and development, then accurate testing can be performed, but the system cannot function when the database is offline, unavailable, or controlled by a third party

Engineering Contradiction:
Improveaccuracy of software component testingVSAvoidavailability of database for testing and development
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent creates virtual copies of database interactions by capturing actual database calls and generating synthetic responses that mimic the behavior of a live database. These virtualized database calls can be recorded and replayed, providing accurate testing environments without requiring access to the actual live database. This copying approach maintains testing reliability while eliminating the need for continuous database availability, as the virtualized environment can operate independently.

Inventive Principle:
Principle #26Copying

3Productivity

If direct access to database transactions is used for virtualization, then simple database interactions can be captured, but the system cannot handle complex interactions involving multiple threads, users, virtual machines, or non-networked components

Engineering Contradiction:
Improvesimplicity of capturing database transactionsVSAvoidability to handle multi-threaded, multi-user, and multi-virtual machine environments
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal virtualization layer that can handle multiple types of database interactions simultaneously - including multi-threaded, multi-user, and multi-virtual machine environments, as well as non-networked and encrypted connections. The system provides a single interface that adapts to various scenarios through bytecode instrumentation and dynamic response generation, eliminating the need for separate solutions for different complexity levels and thereby improving both productivity and adaptability.

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

Data Source

PatentUS10025839B2Database virtualization
Publication Date: 2018.07.17 CA TECH INC
  • US10025839B2 patent drawing
  • US10025839B2 patent drawing
  • US10025839B2 patent drawing

AI summary

Frame data is received from an agent instrumented on a software component, the frame data describing a particular request from the software component to a database access component intercepted at the agent. The particular request corresponds to a transaction involving a database and the software component can interface with the database using the database access component. A service mode is identified that corresponds to the transaction and virtualization data is generated based on the service model and the particular request. The virtualization data is sent to the agent that describes a virtualized response to be provided by the agent to the software component as a response to the particular request.