Database Access Statement Interceptor for Network Traffic Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional client/server systems face performance issues due to limited network connections and resource overhead from compiling repeated database access statements, especially when multiple clients interact with a single database system, and the transition to multi-vendor implementations complicates this problem.

Innovation Solution

A database access statement interceptor system that caches prepared statements in a statement pool and uses table buffers to reduce network traffic and resource usage by intercepting and reusing compiled database access statements, allowing for efficient data retrieval from multiple data sources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the application server sends database access statements over the network to the database system, then data can be retrieved from the database, but network traffic increases and connection limits are reached

Engineering Contradiction:
Improvedata retrieval efficiencyVSAvoidnetwork traffic
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system pre-compiles and caches database access statements in a statement pool before they are needed. When a database access statement is requested, the system checks the cache first and reuses the pre-compiled version if available, eliminating the need to send the statement over the network for compilation. This preliminary action resolves the contradiction by preparing resources in advance to avoid subsequent network traffic and compilation overhead.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the database system compiles received database access statements, then data can be provided to applications, but processing resources are consumed that detract from resources available to other applications

Engineering Contradiction:
Improvedata provision capabilityVSAvoidprocessing resource consumption
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system creates a copy of the database access statement in a statement pool cache after the first compilation. Subsequent requests for the same statement type reuse the cached copy instead of triggering re-compilation. This copying approach resolves the contradiction by allowing multiple applications to access the same pre-compiled statement without consuming additional processing resources for compilation, thereby maintaining data provision capability while reducing processing resource consumption.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If multiple clients interact with a single database system through a single data source, then resource sharing is achieved, but performance degrades due to limited connections and shared resource contention

Engineering Contradiction:
Improvemulti-client supportVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments the database access process into two independent parts: the physical database connection (single shared resource) and the statement compilation/cache layer (distributed per-client resources). Each client gets its own statement pool cache, allowing multiple clients to operate independently without competing for compilation resources. This segmentation resolves the contradiction by maintaining multi-client support while improving system performance through resource isolation and elimination of compilation contention.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8719242B2System and method for a database access statement interceptor
Publication Date: 2014.05.06 SAP SE
  • US8719242B2 patent drawing
  • US8719242B2 patent drawing
  • US8719242B2 patent drawing

AI summary

A database access interceptor includes a statement pool and a table buffer. The statement pool and the table buffer are associated with physical database connections. The interceptor may include a separate instance of the statement pool for each physical database connection. Similarly the interceptor may include a separate instance of the table buffer for each physical database connection.