Uni-tag Connection Pools for Database Resource Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing connection pooling systems are inefficient in managing database connections, as creating new connections is costly in terms of time and resources, and existing solutions do not effectively utilize connection labeling and tagging to optimize resource reuse.

Innovation Solution

A system and method for transparent multi key-value weighted attributed connections using uni-tag connection pools, which enables labeling and tagging of connections, allowing applications to selectively obtain low-cost connections by configuring them based on tags, and reusing tags for subsequent connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If new database connections are created frequently to satisfy application requests, then connection availability is improved, but resource consumption and creation time increase

Engineering Contradiction:
Improveconnection availabilityVSAvoidconnection creation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system pre-creates and maintains a pool of database connections in advance, so that when application requests arrive, ready-to-use connections are immediately available without requiring time-consuming creation operations. The connection pool is proactively managed to ensure sufficient connections exist before they are needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The connection pool serves multiple applications and multiple database operations simultaneously, allowing a single pooled connection to be reused across different applications and query types. This multi-functional approach maximizes the utilization of each connection object, reducing the need to create dedicated connections for each request.

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

2Reliability

If new database connections are created frequently to satisfy application requests, then connection availability is improved, but resource consumption increases

Engineering Contradiction:
Improveconnection availabilityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

Instead of allowing connections to be permanently discarded after use, the system recovers and reuses them by returning them to the connection pool. When a connection is no longer needed by an application, it is not destroyed but rather made available for subsequent requests, thereby recovering the invested resources and avoiding redundant creation overhead.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The connection pool enables a single connection object to serve multiple applications and multiple database operations sequentially. This universal reuse pattern dramatically reduces the total number of connections needed, lowering the overall resource consumption for maintaining connection availability across the system.

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

3Productivity

If connection pooling is implemented to reuse connections, then resource efficiency is improved, but connection management complexity increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidconnection management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The connection pool implementation includes automatic connection creation, allocation, and return mechanisms that operate without manual intervention. The pool manager automatically creates connections when the pool size is insufficient, allocates them to waiting applications, and recovers them when returned. This self-service approach masks the underlying complexity while delivering efficient resource management.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The connection pool acts as an intermediary layer between applications and the database, abstracting away the complexity of direct connection management. Applications interact with the pool through simple interface methods rather than dealing with low-level connection creation and lifecycle management, thereby reducing perceived complexity while maintaining resource efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Loss of time

If existing connections are reused instead of creating new ones, then connection creation time is reduced, but connection availability may be compromised

Engineering Contradiction:
Improveconnection creation timeVSAvoidconnection availability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system proactively creates and maintains a sufficient number of connections in the pool before they are needed, ensuring that when application requests arrive, ready-to-use connections are immediately available. This preliminary preparation eliminates both the time delay of creation and the risk of unavailability, as the pool is pre-stocked with adequate connections.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The connection pool dynamically adjusts its behavior based on demand, automatically creating new connections when the pool is exhausted and applications are waiting, and returning connections to the pool when they are released. This dynamic management ensures that connection availability is maintained adaptively, balancing the benefits of reuse with the need to satisfy incoming requests.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9785687B2System and method for transparent multi key-value weighted attributed connection using uni-tag connection pools
Publication Date: 2017.10.10 ORACLE INT CORP
  • US9785687B2 patent drawing
  • US9785687B2 patent drawing
  • US9785687B2 patent drawing

AI summary

A system and method for transparent multi key-value weighted attributed connection using uni-tag connection pools. In accordance with an embodiment, a connection pool enables labeling of connections that software applications can use to access a database. A connection pool associated with a database enables tagging of connection pools at the database and allows applications to selectively obtain connections based on tags. A request is received from an application to query data from the database using a labeled connection or low-cost alternative. If a low-cost connection is found, but requires configuration, the system returns unmatched labels for use by the application in configuring its environment to use the connection. The system can also generate a tag for the connection. Upon subsequent release of the database session, the tag can be made available for subsequent use of the tag, or a tagged connection, by the same or by other applications.