Server-Side Connection Pooling via Broker Mediation
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
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
Data Source
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.


