Server-Side Connection Pooling via Broker Mediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing server connection management techniques are inefficient in single-threaded environments and large-scale middle-tier systems, as they lack effective pooling of server connections across multiple middle-tier machines, leading to resource idleness and high overhead in creating and tearing down connections.

Innovation Solution

Implementing a server-side connection pool managed by a connection broker that allows clients to request and release server connections on demand, enabling sharing and reuse across multiple client processes and machines, with optimizations such as caching network transport connections and piggybacking requests to reduce overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated server connections are created for each client process, then connection reliability and data security are improved, but resource utilization deteriorates due to idle connections and high overhead in creation and teardown

Engineering Contradiction:
Improveconnection reliabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Multiple client processes share a single pooled server connection through the connection broker, merging individual connection resources into a collective pool that serves multiple clients, thereby improving resource utilization while maintaining connection reliability through broker-mediated management

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The connection broker acts as an intermediary between client processes and the server connection pool, managing connection allocation, authentication, and state persistence to ensure reliable and secure access while enabling resource sharing across multiple clients

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If connection pooling is implemented in multi-threaded middle tiers, then resource sharing is improved, but it fails to work effectively in single-threaded processes where each process holds private resources that are not serially reusable

Engineering Contradiction:
Improveresource sharingVSAvoidenvironment compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The connection pool system provides universal resource sharing capability that works across both multi-threaded and single-threaded environments, as well as across multiple middle-tier machines, making it adaptable to diverse system architectures through the broker's centralized management approach

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

Solution Approach 2:

The invention moves connection pooling from the process level to the system level by introducing a connection broker that manages pools across multiple middle-tier machines, enabling resource sharing in single-threaded environments by abstracting the pooling mechanism to a higher architectural dimension

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If server connections are frequently created and torn down, then connection freshness is improved, but system performance deteriorates due to significant overhead in spawning threads and recreating connection state

Engineering Contradiction:
Improveconnection freshnessVSAvoidconnection overhead time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Server connections are pre-established and maintained in the connection pool before being needed by client processes, eliminating the need for frequent creation and teardown operations, thereby reducing system overhead while maintaining connection availability through broker-managed pool resources

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8713186B2Server-side connection resource pooling
Publication Date: 2014.04.29 ORACLE INT CORP
  • US8713186B2 patent drawing
  • US8713186B2 patent drawing
  • US8713186B2 patent drawing

AI summary

A server side connection pool provides pooling of server connections. Thus, client side processes do not create groups of dedicated resources. Clients are provided the capability to communicate to a server side connection broker process to GET a pooled server connection comprising connection state plus a thread of execution for doing some work, whereby requesting the work can bypass the connection broker process and go directly to the assigned pooled connection. Once the client issues a RELEASE to release the pooled connection back to the pool, a completely different client process on potentially a different client middle tier machine can reuse the same pooled connection. The server-side connection pool can be logically partitioned into sub-pools that correspond to connection classes that typically correspond to respective applications. A client process can request a pooled connection having a particular state, where a stored procedure can be executed to generate such state.