Connection Pool Lazy Validation for Multi-Tenant Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant database environments, existing connection pooling systems face inefficiencies due to costly connection creation and validation processes, particularly during peak traffic and when handling sharded databases, leading to performance bottlenecks and resource wastage.

Innovation Solution

Implementing a connection pool system with 'seconds to trust idle connection' functionality for lazy validation, connection labeling, and sharded database support, which allows for efficient reuse of connections and reduces unnecessary validation by trusting idle connections within a specified time frame, thereby improving performance and resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If connection validation is performed for every connection in the pool, then connection reliability is improved, but system performance deteriorates due to computational overhead

Engineering Contradiction:
Improveconnection reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial validation by validating only a subset of connections in the pool rather than all connections. The system determines whether validation is necessary based on conditions such as the number of idle connections and system state, performing validation only when needed to maintain reliability while avoiding unnecessary overhead that would degrade performance.

Inventive Principle:
Principle #16Partial or excessive action

2Adaptability or versatility

If connection creation is performed frequently to handle peak traffic, then system adaptability is improved, but resource consumption increases

Engineering Contradiction:
Improvesystem adaptabilityVSAvoidresource consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent implements preliminary action by pre-creating connections and maintaining a connection pool before they are needed. Connections are created in advance and kept idle in the pool, ready for immediate use when traffic increases. This eliminates the need for frequent connection creation during peak traffic, reducing resource consumption while maintaining system adaptability to handle varying load demands.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If connection pool size is increased to handle more concurrent requests, then system capacity is improved, but memory usage increases

Engineering Contradiction:
Improvesystem capacityVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies partial action by maintaining a connection pool of moderate size and using validation selectively rather than creating and maintaining a large number of always-ready connections. The system validates connections based on their idle time and system conditions, allowing it to handle concurrent requests efficiently with fewer connections by ensuring connection health when needed, thus improving capacity without proportionally increasing memory usage.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10824750B2System and method for performing connection validation in a multi-tenant environment
Publication Date: 2020.11.03 ORACLE INT CORP
  • US10824750B2 patent drawing
  • US10824750B2 patent drawing
  • US10824750B2 patent drawing

AI summary

Described herein are systems and methods for providing access to a database in a multi-tenant environment, including the use of a connection pool, and support for efficient connection validation. For example, the system can support a “seconds to trust idle connection” functionality, which enables lazy validation of connections in the connection pool. The seconds to trust idle connection is the time period, expressed, for example, as a number of seconds, within a particular connection usage, that the connection pool trusts that the connection is still viable, and if so will skip a connection validation test before delivering the connection to a requesting application.