Transactional Fingerprinting via SQL Query Modification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in transactional fingerprinting for database operations, particularly when modifications to the database engine are not feasible, leading to non-unique or repetitive correlators that hinder effective transaction analysis.

Innovation Solution

The method involves modifying SQL queries to include a WHERE clause with a transaction identifier that always evaluates to a logical true value, allowing transaction identifiers to be logged and correlated within transactional log data without requiring modifications to the database engine.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If instrumentation code is added to the database engine to support transactional fingerprinting, then transaction analysis capability is improved, but device complexity and difficulty of implementation increase

Engineering Contradiction:
Improvetransaction analysis capabilityVSAvoiddatabase engine complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary component (instrumentation module or proxy) that sits between the application and the database engine. This intermediary automatically injects the transaction identifier into SQL queries before they reach the database engine, and extracts it from query results. This approach improves transaction analysis capability without requiring modifications to the database engine itself, thus resolving the contradiction between measurement precision and device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If source code modification is required to add transaction identifiers, then transactional fingerprinting accuracy is improved, but ease of operation and implementation feasibility deteriorate

Engineering Contradiction:
Improvetransactional fingerprinting accuracyVSAvoidimplementation feasibility
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent implements a self-service mechanism where the instrumentation module automatically manages the entire process of transaction identifier injection and extraction without requiring manual source code modification of the database engine. The system self-configures and self-executes the fingerprinting process, improving ease of operation while maintaining measurement precision through automated correlation of transaction identifiers with database operations.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If existing correlators are used without modification, then ease of operation is maintained, but measurement precision and uniqueness of transaction identifiers deteriorate

Engineering Contradiction:
Improvesystem operabilityVSAvoidcorrelator uniqueness
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by generating and injecting the transaction identifier into SQL queries before the queries are executed against the database engine. The instrumentation module prepends or appends the transaction identifier to each query string, ensuring that every database operation is pre-tagged with a unique correlator. This preliminary tagging enables precise measurement and unique identification of transactions while maintaining ease of operation, as the process is automated and does not require changes to existing database operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8122035B2Method and system for transactional fingerprinting in a database system
Publication Date: 2012.02.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8122035B2 patent drawing
  • US8122035B2 patent drawing
  • US8122035B2 patent drawing

AI summary

Transactions with respect to database operations are fingerprinted by associating transaction identifiers with logged information about those database operations. An SQL query is obtained prior to its evaluation by a database engine. A transaction identifier to be associated with the SQL query is also obtained. The SQL query is then modified to generate a modified SQL query, wherein the modified SQL query includes a WHERE clause that contains an expression that always evaluates to a logical true value, and wherein the expression contains the transaction identifier. The modified SQL query is then sent to the database engine for evaluation within the data processing system. When the processing of the modified SQL query is logged with a copy of the modified SQL query, the logged information contains a copy of the transaction identifier.