Cloud Database Connection Pooling for Uneven API Traffic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cloud systems face inefficiencies in database connection management due to uneven distribution of API requests, leading to some application servers being overwhelmed while others remain idle, resulting in suboptimal resource utilization and reduced throughput.
Innovation Solution
Implementing a system that dynamically requests new connections and returns idle connections based on the number of allocated and in-use connections, using a central server to manage a connection pool across multiple application servers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a fixed number of database connections is assigned to each application server, then the system can accommodate high traffic volumes, but requests arrive unevenly causing some servers to be overwhelmed while others remain idle
Solution Approach 1:
The patent implements dynamic connection allocation where application servers can request additional connections from a central pool based on real-time demand. The system transitions from static fixed allocation to dynamic on-demand allocation, allowing connection numbers to fluctuate according to actual traffic patterns and server needs.
Solution Approach 2:
The system incorporates feedback mechanisms where application servers monitor their connection usage and in-use percentages, then communicate this information to the central server. This feedback loop enables the central server to make informed decisions about reallocating connections from idle servers to overwhelmed servers, creating a self-regulating system.
2Ease of operation
If load balancers distribute API requests evenly across application servers, then request distribution is balanced, but load balancers lack visibility into database connection needs and cannot ensure balanced distribution of database requests
Solution Approach 1:
The patent introduces a central server as an intermediary between application servers and the database connection pool. This central server acts as an information hub that receives connection status information from application servers and coordinates the allocation of database connections, bridging the information gap that load balancers alone cannot fill.
Solution Approach 2:
The central server performs multiple functions: it manages the central connection pool, receives and processes connection requests from application servers, monitors in-use percentages, and coordinates reallocation decisions. This multi-functional approach consolidates connection management responsibilities that would otherwise be scattered across individual servers.
3Productivity
If application servers continuously monitor and adjust connection allocation, then connection utilization is optimized, but system complexity increases
Solution Approach 1:
The system implements self-service mechanisms where application servers autonomously monitor their own connection usage, calculate in-use percentages, and initiate requests for additional connections or return idle connections without requiring constant external intervention. This automation reduces the operational burden while maintaining optimization.
Solution Approach 2:
The patent consolidates connection management functions into a centralized system where the central server handles allocation decisions, pooling resources from multiple application servers. This merging approach centralizes complexity in a dedicated component rather than distributing it across all servers, making the system more manageable.
Data Source
AI summary
Methods, systems, and computer-readable storage media for receiving a request that requires a connection to a database, wherein the application server is initially allocated with a set of base connections by a central server; determining that there are available idle connections based on a number of in-use connections and a number of allocated connections; in response to determining that there are available idle connections, assigning an idle connection to the request and updating the number of in-use connections; determining an in-use percentage using the number of in-use connections and the number of allocated connections; and executing one of: requesting new connections from the central server in response to determining that the in-use percentage satisfies an upper percentage threshold, and returning idle connections to the central server in response to determining that the in-use percentage satisfies a lower percentage threshold.


